Moves showLightbox to redux

This commit is contained in:
Josh Perez 2022-12-09 21:02:22 -05:00 committed by GitHub
parent 3a246656e3
commit 635a59a473
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 584 additions and 504 deletions

View file

@ -0,0 +1,35 @@
// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createSelector } from 'reselect';
import type { MediaItemType } from '../../types/MediaItem';
import type { StateType } from '../reducer';
import type { LightboxStateType } from '../ducks/lightbox';
export const getLightboxState = (state: StateType): LightboxStateType =>
state.lightbox;
export const shouldShowLightbox = createSelector(
getLightboxState,
({ isShowingLightbox }): boolean => isShowingLightbox
);
export const getIsViewOnce = createSelector(
getLightboxState,
(state): boolean => (state.isShowingLightbox ? state.isViewOnce : false)
);
export const getSelectedIndex = createSelector(
getLightboxState,
(state): number =>
state.isShowingLightbox
? state.media.findIndex(
item => item.attachment.path === state.selectedAttachmentPath
) || 0
: 0
);
export const getMedia = createSelector(
getLightboxState,
(state): Array<MediaItemType> => (state.isShowingLightbox ? state.media : [])
);