@applicaster/zapp-react-native-ui-components
Version:
Applicaster Zapp React Native ui components for the Quick Brick App
64 lines (51 loc) • 1.62 kB
text/typescript
import * as R from "ramda";
import { platformSelect } from "@applicaster/zapp-react-native-utils/reactUtils";
import { usePickFromState } from "@applicaster/zapp-react-native-redux/hooks";
import {
useNavigation,
useIsTablet,
} from "@applicaster/zapp-react-native-utils/reactHooks";
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 = R.mergeRight(playerPluginConfig, {
...targetScreenConfiguration?.general,
...targetScreenConfiguration?.styles,
...pluginConfiguration,
});
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: {},
});