Skip to content
Snippets Groups Projects
Select Git revision
  • 0126d12d5f8d7990bf0fba2ae82c2170fb60a8bb
  • test default protected
  • master protected
  • niki_edit_branch
  • feat/custom-css
  • feat/redesign-improvements-10
  • feat/redesign-improvements-8
  • feat/redesign-fixes-3
  • feat/pirstan-changes
  • feat/separate-import-thread
  • feat/dary-improvements
  • features/add-pdf-page
  • features/add-typed-table
  • features/fix-broken-calendar-categories
  • features/add-embed-to-articles
  • features/create-mastodon-feed-block
  • features/add-custom-numbering-for-candidates
  • features/add-timeline
  • features/create-wordcloud-from-article-page
  • features/create-collapsible-extra-legal-info
  • features/extend-hero-banner
21 results

0002_delete_person.py

Blame
  • stores.js 1.50 KiB
    import memoize from "lodash/memoize";
    import { Store } from "pullstate";
    
    /** @type {CF2021.GlobalInfoStorePayload} */
    const globalInfoStoreInitial = {
      connectionState: "connecting",
      onlineMembers: 0,
      onlineUsers: 0,
      streamUrl: null,
    };
    
    export const GlobalInfoStore = new Store(globalInfoStoreInitial);
    
    /** @type {CF2021.AuthStorePayload} */
    const authStoreInitial = {
      isAuthenticated: false,
    };
    
    export const AuthStore = new Store(authStoreInitial);
    
    /** @type {CF2021.ProgramStorePayload} */
    const programStoreInitial = {
      items: {},
      currentId: undefined,
      scheduleIds: [],
    };
    
    export const ProgramStore = new Store(programStoreInitial);
    
    /** @type {CF2021.AnnouncementStorePayload} */
    const announcementStoreInitial = {
      items: {},
      itemIds: [],
    };
    
    export const AnnouncementStore = new Store(announcementStoreInitial);
    
    /** @type {CF2021.PostStorePayload} */
    const postStoreInitial = {
      items: {},
      itemCount: 0,
      window: {
        items: [],
        itemCount: 0,
        page: 1,
        perPage: 20,
      },
      filters: {
        flags: "all",
        sort: "byDate",
        type: "all",
        showPendingProposals: false,
      },
    };
    
    export const PostStore = new Store(postStoreInitial);
    
    export const getGroupByCode = memoize(
      (groupMappings, groupCode) => {
        return groupMappings.find((gm) => gm.code === groupCode);
      },
      (groupMappings, groupCode) => [groupMappings, groupCode]
    );
    
    export const getGroupsByCode = memoize((groupMappings, groupCodes) => {
      return groupCodes.map((code) => getGroupByCode(groupMappings, code));
    });