@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
44 lines (35 loc) • 1.13 kB
text/typescript
import { reactHooksLogger } from "../../logger";
import { useZappHookModalStore } from "@applicaster/zapp-react-native-ui-components/Contexts/ZappHookModalContext";
const logger = reactHooksLogger.addSubsystem("useHookModalScreenData");
type VariousScreenData = LegacyNavigationScreenData | ZappRiver | ZappEntry;
export const useHookModalScreenData = (
skipSubscription: boolean
): VariousScreenData | undefined => {
const hookModalState = useZappHookModalStore((state) =>
skipSubscription ? undefined : state.state
);
if (!hookModalState?.screenData) {
return;
}
try {
const screenData = hookModalState.screenData?.payload;
const hookPlugin = hookModalState.screenData.hookPlugin;
if (hookPlugin?.screen_id) {
return {
...screenData,
targetScreen: hookPlugin,
};
}
return hookModalState.screenData?.payload;
} catch (error) {
logger.error({
message: "Hook modal screen data creation failed",
data: {
error,
hookModalState,
},
jsOnly: true,
});
return hookModalState.screenData?.payload;
}
};