import {useRef} from 'react' import {type ListRenderItemInfo} from 'react-native' import {View} from 'react-native' import { type AppBskyActorDefs, type AppBskyFeedDefs, type ModerationOpts, } from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' import {isWeb} from '#/platform/detection' import {type ListMethods} from '#/view/com/util/List' import { type WizardAction, type WizardState, } from '#/screens/StarterPack/Wizard/State' import {atoms as a, native, useTheme, web} from '#/alf' import {Button, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' import { WizardFeedCard, WizardProfileCard, } from '#/components/StarterPack/Wizard/WizardListCard' import {Text} from '#/components/Typography' function keyExtractor( item: AppBskyActorDefs.ProfileViewBasic | AppBskyFeedDefs.GeneratorView, index: number, ) { return `${item.did}-${index}` } export function WizardEditListDialog({ control, state, dispatch, moderationOpts, profile, }: { control: Dialog.DialogControlProps state: WizardState dispatch: (action: WizardAction) => void moderationOpts: ModerationOpts profile: AppBskyActorDefs.ProfileViewDetailed }) { const {_} = useLingui() const t = useTheme() const initialNumToRender = useInitialNumToRender() const listRef = useRef(null) const getData = () => { if (state.currentStep === 'Feeds') return state.feeds return [profile, ...state.profiles.filter(p => p.did !== profile.did)] } const renderItem = ({item}: ListRenderItemInfo) => state.currentStep === 'Profiles' ? ( ) : ( ) return ( {state.currentStep === 'Profiles' ? ( Edit People ) : ( Edit Feeds )} {isWeb && ( )} } stickyHeaderIndices={[0]} style={[ web([a.py_0, {height: '100vh', maxHeight: 600}, a.px_0]), native({ height: '100%', paddingHorizontal: 0, marginTop: 0, paddingTop: 0, }), ]} webInnerStyle={[a.py_0, {maxWidth: 500, minWidth: 200}]} keyboardDismissMode="on-drag" removeClippedSubviews={true} initialNumToRender={initialNumToRender} /> ) }