diff --git a/lib/selectors/keyserver-selectors.js b/lib/selectors/keyserver-selectors.js --- a/lib/selectors/keyserver-selectors.js +++ b/lib/selectors/keyserver-selectors.js @@ -1,5 +1,8 @@ // @flow +import { createSelector } from 'reselect'; + +import type { KeyserverInfo } from '../types/keyserver-types'; import type { AppState } from '../types/redux-types.js'; import { ashoatKeyserverID } from '../utils/validation-utils.js'; @@ -7,4 +10,17 @@ state.keyserverStore.keyserverInfos[ashoatKeyserverID]?.cookie ?? state.cookie; -export { cookieSelector }; +const cookiesSelector: (state: AppState) => { + +[keyserverID: string]: string, +} = createSelector( + (state: AppState) => state.keyserverStore.keyserverInfos, + (infos: { +[key: string]: KeyserverInfo }) => { + const cookies = {}; + for (const keyserverID in infos) { + cookies[keyserverID] = infos[keyserverID].cookie; + } + return cookies; + }, +); + +export { cookieSelector, cookiesSelector };