Files
discord-decomp/modules/search/native/components/layout/SearchScreenLayout.tsx
T
2026-11-01 12:12:55 +02:00

38 lines
1.6 KiB
TypeScript

// Metro module 15474 (f15475).
import { memo } from "react";
import { View } from "react-native";
import SearchQueryStore from "../../stores/SearchQueryStore";
import { createStyles } from "../../../../../design/components/Styles/native/createStyles";
import AppFreezer from "../../../../panels/morphable/native/AppFreezer";
import { useStateFromStores } from "../../../../../_bundle/Module589";
import SearchTabsLayout from "../tabs/SearchTabsLayout";
import AutocompleteScreen from "./autocomplete/AutocompleteScreen";
let useStyles;
const SearchFreezeContainer = function SearchFreezeContainer(props) {
const { visible, children, containerStyle } = props;
const styles = useStyles();
return <AppFreezer manualFreeze={!visible} placeholder={null}>
<View style={[containerStyle, visible ? styles.visible : styles.hidden]} aria-hidden={!visible}>{children}</View>
</AppFreezer>;
};
useStyles = createStyles({
hidden: {
opacity: 0
},
visible: {
flex: 1
}
});
const r35 = memo(function({ searchContext, containerStyle, width }) {
const stateFromStores = useStateFromStores([SearchQueryStore], () => SearchQueryStore.isAutocompleteVisible(searchContext), [searchContext]);
return <>
<SearchFreezeContainer visible={!stateFromStores} containerStyle={containerStyle}>
<SearchTabsLayout searchContext={searchContext} width={width} />
</SearchFreezeContainer>
<SearchFreezeContainer visible={stateFromStores} containerStyle={containerStyle}>
<AutocompleteScreen searchContext={searchContext} />
</SearchFreezeContainer>
</>;
});
export default r35;