diff --git a/src/App.native.tsx b/src/App.native.tsx index 9c97bd41dc..7bbe72a8d1 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -61,6 +61,7 @@ import {useColorModeTheme} from '#/alf/util/useColorModeTheme' import {Provider as ContextMenuProvider} from '#/components/ContextMenu' import {useStarterPackEntry} from '#/components/hooks/useStarterPackEntry' import {Provider as IntentDialogProvider} from '#/components/intents/IntentDialogs' +import {Provider as LightboxStateProvider} from '#/components/Lightbox/state' import {Provider as PolicyUpdateOverlayProvider} from '#/components/PolicyUpdateOverlay' import {Provider as PortalProvider} from '#/components/Portal' import {Provider as VideoVolumeProvider} from '#/components/Post/Embed/VideoEmbed/VideoVolumeContext' @@ -77,7 +78,6 @@ import { setupDeviceId, } from '#/analytics' import {IS_ANDROID, IS_IOS} from '#/env' -import {Provider as LightboxStateProvider} from '#/features/lightbox/state' import { prefetchLiveEvents, Provider as LiveEventsProvider, diff --git a/src/App.web.tsx b/src/App.web.tsx index 42cec50c87..178d3b8298 100644 --- a/src/App.web.tsx +++ b/src/App.web.tsx @@ -53,6 +53,7 @@ import {useColorModeTheme} from '#/alf/util/useColorModeTheme' import {Provider as ContextMenuProvider} from '#/components/ContextMenu' import {useStarterPackEntry} from '#/components/hooks/useStarterPackEntry' import {Provider as IntentDialogProvider} from '#/components/intents/IntentDialogs' +import {Provider as LightboxStateProvider} from '#/components/Lightbox/state' import {Provider as PolicyUpdateOverlayProvider} from '#/components/PolicyUpdateOverlay' import {Provider as PortalProvider} from '#/components/Portal' import {Provider as ActiveVideoProvider} from '#/components/Post/Embed/VideoEmbed/ActiveVideoWebContext' @@ -69,7 +70,6 @@ import { features, setupDeviceId, } from '#/analytics' -import {Provider as LightboxStateProvider} from '#/features/lightbox/state' import { prefetchLiveEvents, Provider as LiveEventsProvider, diff --git a/src/features/lightbox/Lightbox.tsx b/src/components/Lightbox/Lightbox.tsx similarity index 81% rename from src/features/lightbox/Lightbox.tsx rename to src/components/Lightbox/Lightbox.tsx index ae46832fcd..c283cc89cb 100644 --- a/src/features/lightbox/Lightbox.tsx +++ b/src/components/Lightbox/Lightbox.tsx @@ -2,8 +2,8 @@ import {useCallback} from 'react' import {shareImageModal} from '#/lib/media/manip' import {useSaveImageToMediaLibrary} from '#/lib/media/save-image' -import ImageView from '#/features/lightbox/pager/ImagePager' -import {useLightbox, useLightboxControls} from '#/features/lightbox/state' +import ImageView from '#/components/Lightbox/pager/ImagePager' +import {useLightbox, useLightboxControls} from '#/components/Lightbox/state' export function Lightbox() { const {activeLightbox} = useLightbox() diff --git a/src/features/lightbox/Lightbox.web.tsx b/src/components/Lightbox/Lightbox.web.tsx similarity index 97% rename from src/features/lightbox/Lightbox.web.tsx rename to src/components/Lightbox/Lightbox.web.tsx index 5a1ae71b7f..0d140747c8 100644 --- a/src/features/lightbox/Lightbox.web.tsx +++ b/src/components/Lightbox/Lightbox.web.tsx @@ -26,14 +26,14 @@ import { import {DotGrid3x1_Stroke2_Corner0_Rounded as EllipsisIcon} from '#/components/icons/DotGrid' import {Download_Stroke2_Corner0_Rounded as DownloadIcon} from '#/components/icons/Download' import {TimesLarge_Stroke2_Corner0_Rounded as XIcon} from '#/components/icons/Times' +import {CircleChromeButton} from '#/components/Lightbox/chrome/CircleChromeButton' +import {PagerDots} from '#/components/Lightbox/chrome/PagerDots' +import {useLightbox, useLightboxControls} from '#/components/Lightbox/state' +import {type ImageSource} from '#/components/Lightbox/types' import {Loader} from '#/components/Loader' import * as Menu from '#/components/Menu' import * as Toast from '#/components/Toast' import {Text} from '#/components/Typography' -import {CircleChromeButton} from '#/features/lightbox/chrome/CircleChromeButton' -import {PagerDots} from '#/features/lightbox/chrome/PagerDots' -import {useLightbox, useLightboxControls} from '#/features/lightbox/state' -import {type ImageSource} from '#/features/lightbox/types' export function Lightbox() { const {activeLightbox} = useLightbox() diff --git a/src/features/lightbox/chrome/CircleChromeButton.tsx b/src/components/Lightbox/chrome/CircleChromeButton.tsx similarity index 100% rename from src/features/lightbox/chrome/CircleChromeButton.tsx rename to src/components/Lightbox/chrome/CircleChromeButton.tsx diff --git a/src/features/lightbox/chrome/CircleChromeButton.web.tsx b/src/components/Lightbox/chrome/CircleChromeButton.web.tsx similarity index 100% rename from src/features/lightbox/chrome/CircleChromeButton.web.tsx rename to src/components/Lightbox/chrome/CircleChromeButton.web.tsx diff --git a/src/features/lightbox/chrome/Footer.tsx b/src/components/Lightbox/chrome/Footer.tsx similarity index 100% rename from src/features/lightbox/chrome/Footer.tsx rename to src/components/Lightbox/chrome/Footer.tsx diff --git a/src/features/lightbox/chrome/Header.tsx b/src/components/Lightbox/chrome/Header.tsx similarity index 100% rename from src/features/lightbox/chrome/Header.tsx rename to src/components/Lightbox/chrome/Header.tsx diff --git a/src/features/lightbox/chrome/ImageMenu.tsx b/src/components/Lightbox/chrome/ImageMenu.tsx similarity index 100% rename from src/features/lightbox/chrome/ImageMenu.tsx rename to src/components/Lightbox/chrome/ImageMenu.tsx diff --git a/src/features/lightbox/chrome/PagerDots.tsx b/src/components/Lightbox/chrome/PagerDots.tsx similarity index 100% rename from src/features/lightbox/chrome/PagerDots.tsx rename to src/components/Lightbox/chrome/PagerDots.tsx diff --git a/src/features/lightbox/index.tsx b/src/components/Lightbox/index.tsx similarity index 100% rename from src/features/lightbox/index.tsx rename to src/components/Lightbox/index.tsx diff --git a/src/features/lightbox/pager/ImageItem/ImageItem.android.tsx b/src/components/Lightbox/pager/ImageItem/ImageItem.android.tsx similarity index 100% rename from src/features/lightbox/pager/ImageItem/ImageItem.android.tsx rename to src/components/Lightbox/pager/ImageItem/ImageItem.android.tsx diff --git a/src/features/lightbox/pager/ImageItem/ImageItem.ios.tsx b/src/components/Lightbox/pager/ImageItem/ImageItem.ios.tsx similarity index 100% rename from src/features/lightbox/pager/ImageItem/ImageItem.ios.tsx rename to src/components/Lightbox/pager/ImageItem/ImageItem.ios.tsx diff --git a/src/features/lightbox/pager/ImageItem/ImageItem.tsx b/src/components/Lightbox/pager/ImageItem/ImageItem.tsx similarity index 100% rename from src/features/lightbox/pager/ImageItem/ImageItem.tsx rename to src/components/Lightbox/pager/ImageItem/ImageItem.tsx diff --git a/src/features/lightbox/pager/ImagePager.tsx b/src/components/Lightbox/pager/ImagePager.tsx similarity index 99% rename from src/features/lightbox/pager/ImagePager.tsx rename to src/components/Lightbox/pager/ImagePager.tsx index e6bbff42f7..80fa346f03 100644 --- a/src/features/lightbox/pager/ImagePager.tsx +++ b/src/components/Lightbox/pager/ImagePager.tsx @@ -36,8 +36,8 @@ import * as ScreenOrientation from 'expo-screen-orientation' import {type Dimensions} from '#/lib/media/types' import {useTheme} from '#/alf' import {setSystemUITheme} from '#/alf/util/systemUI' +import {type Lightbox} from '#/components/Lightbox/state' import {IS_IOS} from '#/env' -import {type Lightbox} from '#/features/lightbox/state' import {PlatformInfo} from '../../../../modules/expo-bluesky-swiss-army' import {Footer} from '../chrome/Footer' import {Header} from '../chrome/Header' diff --git a/src/features/lightbox/pager/transforms.ts b/src/components/Lightbox/pager/transforms.ts similarity index 100% rename from src/features/lightbox/pager/transforms.ts rename to src/components/Lightbox/pager/transforms.ts diff --git a/src/features/lightbox/state.tsx b/src/components/Lightbox/state.tsx similarity index 98% rename from src/features/lightbox/state.tsx rename to src/components/Lightbox/state.tsx index db2ada1c83..23af527734 100644 --- a/src/features/lightbox/state.tsx +++ b/src/components/Lightbox/state.tsx @@ -9,7 +9,7 @@ import {nanoid} from 'nanoid/non-secure' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {useHotkeysContext} from '#/lib/hotkeys' -import {type ImageSource} from '#/features/lightbox/types' +import {type ImageSource} from '#/components/Lightbox/types' export type Lightbox = { id: string diff --git a/src/features/lightbox/types.ts b/src/components/Lightbox/types.ts similarity index 100% rename from src/features/lightbox/types.ts rename to src/components/Lightbox/types.ts diff --git a/src/components/Post/Embed/ImageEmbed.tsx b/src/components/Post/Embed/ImageEmbed.tsx index f96049f014..d779d04876 100644 --- a/src/components/Post/Embed/ImageEmbed.tsx +++ b/src/components/Post/Embed/ImageEmbed.tsx @@ -6,10 +6,10 @@ import {atoms as a, tokens} from '#/alf' import {AutoSizedImage} from '#/components/images/AutoSizedImage' import {Gallery} from '#/components/images/Gallery' import {ImageLayoutGrid} from '#/components/images/ImageLayoutGrid' +import {useLightboxControls} from '#/components/Lightbox/state' +import {type Dimensions} from '#/components/Lightbox/types' import {PostEmbedViewContext} from '#/components/Post/Embed/types' import {useAnalytics} from '#/analytics' -import {useLightboxControls} from '#/features/lightbox/state' -import {type Dimensions} from '#/features/lightbox/types' import {type EmbedType} from '#/types/bsky/post' import {type CommonProps} from './types' diff --git a/src/components/images/ImageLayoutGrid.tsx b/src/components/images/ImageLayoutGrid.tsx index 2951e4c50a..0017ddf9cf 100644 --- a/src/components/images/ImageLayoutGrid.tsx +++ b/src/components/images/ImageLayoutGrid.tsx @@ -4,8 +4,8 @@ import {type AnimatedRef, useAnimatedRef} from 'react-native-reanimated' import {type AppBskyEmbedImages} from '@atproto/api' import {atoms as a, useBreakpoints} from '#/alf' +import {type Dimensions} from '#/components/Lightbox/types' import {PostEmbedViewContext} from '#/components/Post/Embed/types' -import {type Dimensions} from '#/features/lightbox/types' import {GalleryItem} from './ImageLayoutGridItem' interface ImageLayoutGridProps { diff --git a/src/screens/Profile/Header/Shell.tsx b/src/screens/Profile/Header/Shell.tsx index fcdfcad80a..a1eff2f19b 100644 --- a/src/screens/Profile/Header/Shell.tsx +++ b/src/screens/Profile/Header/Shell.tsx @@ -22,11 +22,11 @@ import {atoms as a, platform, useTheme} from '#/alf' import {Button} from '#/components/Button' import {useDialogControl} from '#/components/Dialog' import {ArrowLeft_Stroke2_Corner0_Rounded as ArrowLeftIcon} from '#/components/icons/Arrow' +import {useLightboxControls} from '#/components/Lightbox/state' import {LabelsOnMe} from '#/components/moderation/LabelsOnMe' import {ProfileHeaderAlerts} from '#/components/moderation/ProfileHeaderAlerts' import {useAnalytics} from '#/analytics' import {IS_IOS} from '#/env' -import {useLightboxControls} from '#/features/lightbox/state' import {useActorStatus} from '#/features/liveNow' import {EditLiveDialog} from '#/features/liveNow/components/EditLiveDialog' import {LiveIndicator} from '#/features/liveNow/components/LiveIndicator' diff --git a/src/state/util.ts b/src/state/util.ts index d52446b660..239aab5aca 100644 --- a/src/state/util.ts +++ b/src/state/util.ts @@ -1,7 +1,7 @@ import {useCallback} from 'react' import {useDialogStateControlContext} from '#/state/dialogs' -import {useLightboxControls} from '#/features/lightbox/state' +import {useLightboxControls} from '#/components/Lightbox/state' import {useModalControls} from './modals' import {useComposerControls} from './shell/composer' import {useSetDrawerOpen} from './shell/drawer-open' diff --git a/src/view/com/profile/ProfileSubpageHeader.tsx b/src/view/com/profile/ProfileSubpageHeader.tsx index eaf71e282f..072583938a 100644 --- a/src/view/com/profile/ProfileSubpageHeader.tsx +++ b/src/view/com/profile/ProfileSubpageHeader.tsx @@ -19,7 +19,7 @@ import {Text} from '#/view/com/util/text/Text' import {UserAvatar, type UserAvatarType} from '#/view/com/util/UserAvatar' import {StarterPack} from '#/components/icons/StarterPack' import * as Layout from '#/components/Layout' -import {useLightboxControls} from '#/features/lightbox/state' +import {useLightboxControls} from '#/components/Lightbox/state' export function ProfileSubpageHeader({ isLoading, diff --git a/src/view/com/util/List.tsx b/src/view/com/util/List.tsx index ed9481dbc0..aee397bb79 100644 --- a/src/view/com/util/List.tsx +++ b/src/view/com/util/List.tsx @@ -13,8 +13,8 @@ import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {useScrollHandlers} from '#/lib/ScrollContext' import {addStyle} from '#/lib/styles' import {useTheme} from '#/alf' +import {useLightbox} from '#/components/Lightbox/state' import {IS_IOS} from '#/env' -import {useLightbox} from '#/features/lightbox/state' import {FlatList_INTERNAL} from './Views' export type ListMethods = FlatList_INTERNAL diff --git a/src/view/shell/index.tsx b/src/view/shell/index.tsx index f613ec1d04..53c716d222 100644 --- a/src/view/shell/index.tsx +++ b/src/view/shell/index.tsx @@ -32,6 +32,7 @@ import {LinkWarningDialog} from '#/components/dialogs/LinkWarning' import {MutedWordsDialog} from '#/components/dialogs/MutedWords' import {NuxDialogs} from '#/components/dialogs/nuxs' import {SigninDialog} from '#/components/dialogs/Signin' +import {Lightbox} from '#/components/Lightbox' import {GlobalReportDialog} from '#/components/moderation/ReportDialog' import { Outlet as PolicyUpdateOverlayPortalOutlet, @@ -43,7 +44,6 @@ import {NoAccessScreen} from '#/ageAssurance/components/NoAccessScreen' import {RedirectOverlay} from '#/ageAssurance/components/RedirectOverlay' import {PassiveAnalytics} from '#/analytics/PassiveAnalytics' import {IS_ANDROID, IS_IOS, IS_LIQUID_GLASS} from '#/env' -import {Lightbox} from '#/features/lightbox' import {RoutesContainer, TabsNavigator} from '#/Navigation' import {BottomSheetOutlet} from '../../../modules/bottom-sheet' import {updateActiveViewAsync} from '../../../modules/expo-bluesky-swiss-army/src/VisibilityView' diff --git a/src/view/shell/index.web.tsx b/src/view/shell/index.web.tsx index d0ef14c89a..bfce0729d2 100644 --- a/src/view/shell/index.web.tsx +++ b/src/view/shell/index.web.tsx @@ -22,6 +22,7 @@ import {MutedWordsDialog} from '#/components/dialogs/MutedWords' import {NuxDialogs} from '#/components/dialogs/nuxs' import {SigninDialog} from '#/components/dialogs/Signin' import {useWelcomeModal} from '#/components/hooks/useWelcomeModal' +import {Lightbox} from '#/components/Lightbox' import {GlobalReportDialog} from '#/components/moderation/ReportDialog' import { Outlet as PolicyUpdateOverlayPortalOutlet, @@ -33,7 +34,6 @@ import {useAgeAssurance} from '#/ageAssurance' import {NoAccessScreen} from '#/ageAssurance/components/NoAccessScreen' import {RedirectOverlay} from '#/ageAssurance/components/RedirectOverlay' import {PassiveAnalytics} from '#/analytics/PassiveAnalytics' -import {Lightbox} from '#/features/lightbox' import {FlatNavigator, RoutesContainer} from '#/Navigation' import {Composer} from './Composer' import {DrawerContent} from './Drawer'