reducer: (s, a) => {
   if (a.server.name === 'localhost') return {};
   const servers = utils.clone(s.servers);
   servers[a.server.name] = utils.merge(servers[a.server.name], webAPIServerToPatcherServer(a.server));
   return {
     servers,
   };
 },
 reducer: (s, a) => {
   const characters = utils.clone(s.characters);
   delete characters[a.id];
   const servers = updateCharacterCounts(utils.clone(s.servers), characters);
   return {
     characters,
     servers,
   };
 },
 reducer: (s, a) => {
   if (s && isEqual(s.characters[a.character.id], a.character)) {
     return;
   }
   const characters = utils.clone(s.characters);
   characters[a.character.id] = a.character;
   const servers = updateCharacterCounts(utils.clone(s.servers), characters);
   return {
     characters,
     servers,
   };
 },
function webAPIServerToPatcherServer(server: webAPI.ServerModel): PatcherServer {

  const channels = patcher.getAllChannels();
  const channelIndex = utils.findIndexWhere(channels, c => c.channelID === server.channelID);
  const channel = channels[channelIndex];

  return utils.merge({
    name: server.name,
    available: server.playerMaximum > 0,
    type: ServerType.CUGAME,
    channelStatus: channel ? channel.channelStatus : ChannelStatus.NotInstalled,
    apiHost: server.apiHost,
  }, server);
}
 reducer: (s, a) => {
   const servers = utils.clone(s.servers);
   servers[a.id].available = false;
   return {
     servers,
   };
 },
 reducer: (s, a) => {
   const alerts = utils.clone(s.alerts);
   delete alerts[a.id];
   return {
     alerts,
   };
 },
 reducer: (s, a) => {
   const alerts = utils.clone(s.alerts);
   alerts[a.alert.id] = a.alert;
   return {
     alerts,
   };
 },
Example #8
0
export function shouldShowItem(item: InventoryItem.Fragment, activeFilters: ActiveFilters, searchValue: string) {
  const hasFilter = hasActiveFilterButtons(activeFilters);
  const hasSearch = hasFilterText(searchValue);
  const itemName = getItemDefinitionName(item);

    // Active filters compared to item gearSlots
  const doActiveFiltersIncludeItem = _.findIndex(_.values(activeFilters), (filter) => {
    return inventoryFilterButtons[filter.name].filter(item);
  }) > -1;

    // Search text compared to itemName
  const doesSearchValueIncludeItem = utils.doesSearchInclude(searchValue, itemName);

    // Do active filters and search include item?
  if (hasFilter && hasSearch) {
    return doActiveFiltersIncludeItem && doesSearchValueIncludeItem;

      // Do active filters include item?
  } else if (hasFilter && !hasSearch) {
    return doActiveFiltersIncludeItem;

    // Does search value include item?
  } else if (!hasFilter && hasSearch) {
    return doesSearchValueIncludeItem;

    // If there are no filters or searchValue, every item should be shown.
  } else {
    return true;
  }
}
    events.on(characterUpdatedEvent, (characterJSON: string) => {
      const character = utils.tryParseJSON<webAPI.SimpleCharacter>(characterJSON, client.debug);
      if (character !== null) {
        if (controllerState && isEqual(controllerState.characters[character.id], character)) {
          // No need to update character if already equal to what we have in state.
          return;
        }

        // Update character
        dispatch(characterUpdate(character));
      }
    });
Example #10
0
export function getContainerColor(item: InventoryItem.Fragment, alpha?: number) {
  if (item && item.containerColor) {
    const { containerColor } = item;
    if (containerColor) {
      return `rgba(${containerColor.r}, ${containerColor.g}, ${containerColor.b}, ${alpha || 1})`;
    } else {
      return utils.lightenColor(colors.filterBackgroundColor, 5);
    }
  }

  if (!item) {
    console.error('You provided an undefined item to getContainerColor() function');
  }
}