diff options
Diffstat (limited to 'node_modules/@jet-app/app-store/tmp/src/common/web-navigation/flow-action-presentation.js')
| -rw-r--r-- | node_modules/@jet-app/app-store/tmp/src/common/web-navigation/flow-action-presentation.js | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/node_modules/@jet-app/app-store/tmp/src/common/web-navigation/flow-action-presentation.js b/node_modules/@jet-app/app-store/tmp/src/common/web-navigation/flow-action-presentation.js new file mode 100644 index 0000000..41b5bb9 --- /dev/null +++ b/node_modules/@jet-app/app-store/tmp/src/common/web-navigation/flow-action-presentation.js @@ -0,0 +1,79 @@ +import { isSystemImage } from "../../api/models"; +import { asString } from "../../foundation/json-parsing/server-data"; +import { createArtworkForSystemImage } from "../content/artwork/artwork"; +import * as metricsHelpersClicks from "../metrics/helpers/clicks"; +import * as metricsHelpersLocation from "../metrics/helpers/location"; +/** + * Creates a {@linkcode PrepareAction} that sets the link's text and icon + */ +function createWebNavigationFlowActionConfiguration(id) { + return (objectGraph, action) => { + const tab = objectGraph.bag.tabsStandard.find((t) => t.id === id); + const imageIdentifier = asString(tab, "image-identifier"); + const artwork = isSystemImage(imageIdentifier) + ? createArtworkForSystemImage(objectGraph, imageIdentifier) + : null; + action.title = asString(tab, "title"); + action.artwork = artwork; + if (objectGraph.client.isWeb) { + metricsHelpersClicks.addClickEventToAction(objectGraph, action, { + targetType: "link", + id: id, + pageInformation: undefined, + locationTracker: metricsHelpersLocation.newLocationTracker(), + }); + } + }; +} +/** + * {@linkcode PrepareAction} that presents a link to the "Apps" landing page + */ +export const appLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("apps"); +/** + * {@linkcode PrepareAction} that presents a link to the "Apps & Games" landing page + */ +export const appAndGamesLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("apps-and-games"); +/** + * {@linkcode PrepareAction} that presents a link to the "Arcade" landing page + */ +export const arcadeLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("arcade"); +/** + * {@linkcode PrepareAction} that presents a link to the "Discover" landing page + */ +export const discoverLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("discover"); +/** + * {@linkcode PrepareAction} that presents a link to the "Games" landing page + */ +export const gamesLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("games"); +/** + * {@linkcode PrepareAction} that presents a link to the "Create" landing page + * + * Note: `create` refers to the specific "Create" landing page, rather than this being + * a function that creates landing page presentations + */ +export const createLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("create"); +/** + * {@linkcode PrepareAction} that presents a link to the "Work" landing page + */ +export const workLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("work"); +/** + * {@linkcode PrepareAction} that presents a link to the "Play" landing page + */ +export const playLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("play"); +/** + * {@linkcode PrepareAction} that presents a link to the "Develop" landing page + */ +export const developLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("develop"); +/** + * {@linkcode PrepareAction} that presents a link to the "Categories" landing page + */ +export const categoriesLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("categories"); +/** + * {@linkcode PrepareAction} that presents a link to the "Today" landing page + */ +export const todayLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("today"); +/** + * {@linkcode PrepareAction} that presents a link to the "Apps & Games" landing page + */ +export const searchLandingPageFlowActionPresentation = createWebNavigationFlowActionConfiguration("search"); +//# sourceMappingURL=flow-action-presentation.js.map
\ No newline at end of file |
