@applicaster/zapp-react-native-ui-components
Version:
Applicaster Zapp React Native ui components for the Quick Brick App
61 lines (49 loc) • 1.73 kB
text/typescript
import { mergeRight } from "ramda";
import { platformSelect } from "@applicaster/zapp-react-native-utils/reactUtils";
import { usePickFromState } from "@applicaster/zapp-react-native-redux/hooks";
import { useNavigation } from "@applicaster/zapp-react-native-utils/reactHooks/navigation/useNavigation";
import { useIsTablet } from "@applicaster/zapp-react-native-utils/reactHooks/device/useIsTablet";
import { playerManager } from "@applicaster/zapp-react-native-utils/appUtils";
export const useConfiguration = () => {
const {
videoModalState: { item },
} = useNavigation();
const { rivers, contentTypes, pluginConfigurations } = usePickFromState([
"rivers",
"contentTypes",
"pluginConfigurations",
]);
const targetScreenId = contentTypes?.[item?.type?.value]?.screen_id;
const targetScreenConfiguration = rivers?.[targetScreenId];
const pluginConfiguration =
pluginConfigurations[targetScreenConfiguration?.type]?.configuration_json;
const playerPluginConfig = playerManager.getPluginConfiguration();
const config = mergeRight(playerPluginConfig, {
...pluginConfiguration,
...targetScreenConfiguration?.general,
...targetScreenConfiguration?.styles,
});
const {
minimised_height = 0,
minimised_height_tablet = 0,
modal_background_color,
} = config;
const minimisedHeight = useIsTablet()
? minimised_height_tablet
: minimised_height;
return {
minimised_height: Number(minimisedHeight),
modal_background_color,
};
};
const fullSize = {
width: "100%",
height: "100%",
};
export const playerDimensionsHack = platformSelect({
android_tv: fullSize,
amazon: fullSize,
lg_tv: fullSize,
samsung_tv: fullSize,
default: {},
});