summaryrefslogtreecommitdiff
path: root/node_modules/@jet-app/app-store/tmp/src/controllers/arcade
diff options
context:
space:
mode:
authorrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
committerrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
commitbce557cc2dc767628bed6aac87301a1be7c5431b (patch)
treeb51a051228d01fe3306cd7626d4a96768aadb944 /node_modules/@jet-app/app-store/tmp/src/controllers/arcade
init commit
Diffstat (limited to 'node_modules/@jet-app/app-store/tmp/src/controllers/arcade')
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/controllers/arcade/arcade-grouping-page-intent-controller.js71
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/controllers/arcade/routable-arcade-see-all-page-controller.js42
2 files changed, 113 insertions, 0 deletions
diff --git a/node_modules/@jet-app/app-store/tmp/src/controllers/arcade/arcade-grouping-page-intent-controller.js b/node_modules/@jet-app/app-store/tmp/src/controllers/arcade/arcade-grouping-page-intent-controller.js
new file mode 100644
index 0000000..ba1e42a
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/controllers/arcade/arcade-grouping-page-intent-controller.js
@@ -0,0 +1,71 @@
+import { isNothing } from "@jet/environment/types/optional";
+import { fetchData } from "../../foundation/media/network";
+import { makeBaseGroupingPageRequest, prepareGroupingPageRequest } from "../../common/grouping/grouping-request";
+import { flattenedGroupingFromDataContainer, groupingPageFromFlattenedGrouping, groupingParseContextFromDataContainer, } from "../../common/grouping/render-grouping-page";
+import { arcadeAppsRequestForIcons } from "../../common/arcade/arcade-common";
+import { GroupingArcadeFooterShelfController } from "../../common/grouping/shelf-controllers/grouping-arcade-footer-shelf-controller";
+import { injectWebNavigation } from "../../common/web-navigation/inject-web-navigation";
+import { injectSEOData } from "../../api/models/web-renderable-page";
+import { withActiveIntent } from "../../foundation/dependencies/active-intent";
+import { setPreviewPlatform } from "../../common/preview-platform";
+function makeMediaApiArcadeGroupingPageRequest(objectGraph, intent) {
+ const mediaApiRequest = makeBaseGroupingPageRequest(objectGraph)
+ .addingQuery("name", "arcade")
+ .addingQuery("tabs", "subscriber");
+ prepareGroupingPageRequest(objectGraph, mediaApiRequest);
+ setPreviewPlatform(objectGraph, mediaApiRequest);
+ return mediaApiRequest;
+}
+function makeArcadeSeeAllShelf(objectGraph, groupingParseContext, response) {
+ const token = {
+ id: "arcade-see-all-games-footer",
+ presentationHints: {},
+ featuredContentId: -1 /* FeaturedContentID.Native_GroupingShelf */,
+ featuredContentData: null,
+ nativeGroupingShelfId: 1 /* NativeGroupingShelfID.Arcade_SeeAllGamesFooter */,
+ metricsPageInformation: groupingParseContext.metricsPageInformation,
+ metricsLocationTracker: groupingParseContext.metricsLocationTracker,
+ pageGenreId: groupingParseContext.pageGenreId,
+ title: null,
+ shouldFilter: false,
+ remainingItems: [],
+ isFirstRender: true,
+ isDeferring: false,
+ showOrdinals: false,
+ hasExistingContent: false,
+ showingPlaceholders: false,
+ ordinalIndex: 1,
+ isSearchLandingPage: groupingParseContext.isSearchLandingPage,
+ isArcadePage: groupingParseContext === null || groupingParseContext === void 0 ? void 0 : groupingParseContext.isArcadePage,
+ };
+ const groupingArcadeFooterShelfController = new GroupingArcadeFooterShelfController();
+ const arcadeFooterShelf = groupingArcadeFooterShelfController.createShelf(objectGraph, response, groupingParseContext, token, null);
+ return arcadeFooterShelf;
+}
+export const ArcadeGroupingPageIntentController = {
+ $intentKind: "ArcadeGroupingPageIntent",
+ async perform(intent, objectGraphWithoutActiveIntent) {
+ return await withActiveIntent(objectGraphWithoutActiveIntent, intent, async (objectGraph) => {
+ var _a;
+ const groupingPageRequest = makeMediaApiArcadeGroupingPageRequest(objectGraph, intent);
+ const arcadeFooterRequest = arcadeAppsRequestForIcons(objectGraph, 20);
+ const [groupingPageResponse, arcadeFooterResponse] = await Promise.all([
+ fetchData(objectGraph, groupingPageRequest),
+ fetchData(objectGraph, arcadeFooterRequest),
+ ]);
+ const flattenedGrouping = flattenedGroupingFromDataContainer(objectGraph, groupingPageResponse);
+ const groupingParseContext = groupingParseContextFromDataContainer(objectGraph, groupingPageResponse);
+ if (isNothing(flattenedGrouping) || isNothing(groupingParseContext)) {
+ return null;
+ }
+ const page = groupingPageFromFlattenedGrouping(objectGraph, flattenedGrouping, groupingParseContext);
+ page.shelves.push(makeArcadeSeeAllShelf(objectGraph, groupingParseContext, arcadeFooterResponse));
+ if (objectGraph.client.isWeb) {
+ injectWebNavigation(objectGraph, page, intent.platform);
+ injectSEOData(page, (_a = objectGraph.seo) === null || _a === void 0 ? void 0 : _a.getSEODataForGroupingPage(objectGraph, page, groupingPageResponse));
+ }
+ return page;
+ });
+ },
+};
+//# sourceMappingURL=arcade-grouping-page-intent-controller.js.map \ No newline at end of file
diff --git a/node_modules/@jet-app/app-store/tmp/src/controllers/arcade/routable-arcade-see-all-page-controller.js b/node_modules/@jet-app/app-store/tmp/src/controllers/arcade/routable-arcade-see-all-page-controller.js
new file mode 100644
index 0000000..9751c7b
--- /dev/null
+++ b/node_modules/@jet-app/app-store/tmp/src/controllers/arcade/routable-arcade-see-all-page-controller.js
@@ -0,0 +1,42 @@
+import { ArcadeSeeAllGamesPage } from "../../api/models";
+import { defaultAdditionalPlatformsForClient } from "../../foundation/media/data-fetching";
+import { fetchData } from "../../foundation/media/network";
+import { withActiveIntent } from "../../foundation/dependencies/active-intent";
+import { arcadeAppsRequest } from "../../common/arcade/arcade-common";
+import { defaultRequestAttributes, prepareRequestWithSelectedFacets } from "../../common/arcade/arcade-see-all-request";
+import { createArcadeSeeAllGamesPaginationToken, createShelves, } from "../../common/arcade/render-arcade-see-all-games-page";
+import { shouldFetchCustomAttributes } from "../../common/product-page/product-page-variants";
+import { metricsPageInformationFromMediaApiResponse } from "../../common/metrics/helpers/page";
+import { asArrayOrEmpty } from "../../foundation/json-parsing/server-data";
+import { injectWebNavigation } from "../../common/web-navigation/inject-web-navigation";
+import { createDefaultSelectedFacetOptions } from "../../common/arcade/arcade-see-all-games-facets";
+import { arcadeSeeAllRoutes as routes, makeArcadeSeeAllCanonicalUrl } from "../../common/arcade/arcade-see-all-routing";
+import { injectSEOData } from "../../api/models/web-renderable-page";
+export const RoutableArcadeSeeAllPageController = {
+ $intentKind: "RoutableArcadeSeeAllPageIntent",
+ routes,
+ async perform(intent, objectGraphWithoutActiveIntent) {
+ return await withActiveIntent(objectGraphWithoutActiveIntent, intent, async (objectGraph) => {
+ var _a;
+ const mediaApiRequest = arcadeAppsRequest(objectGraph)
+ .includingAdditionalPlatforms(defaultAdditionalPlatformsForClient(objectGraph))
+ .includingAttributes(defaultRequestAttributes(objectGraph))
+ .usingCustomAttributes(shouldFetchCustomAttributes(objectGraph));
+ if (objectGraph.client.isWeb) {
+ mediaApiRequest.withSparseLimit(20);
+ }
+ prepareRequestWithSelectedFacets(mediaApiRequest, createDefaultSelectedFacetOptions(objectGraph));
+ const mediaApiResponse = await fetchData(objectGraph, mediaApiRequest);
+ const pageInformation = metricsPageInformationFromMediaApiResponse(objectGraph, "Room", "arcadeSeeAllGames", mediaApiResponse);
+ const paginationToken = createArcadeSeeAllGamesPaginationToken(objectGraph, { isCompactMode: false }, pageInformation);
+ const page = new ArcadeSeeAllGamesPage(createShelves(objectGraph, asArrayOrEmpty(mediaApiResponse, "results.groups"), paginationToken));
+ if (objectGraph.client.isWeb) {
+ page.canonicalURL = makeArcadeSeeAllCanonicalUrl(objectGraph, intent);
+ injectWebNavigation(objectGraph, page, intent.platform);
+ injectSEOData(page, (_a = objectGraph.seo) === null || _a === void 0 ? void 0 : _a.getSEODataForArcadeSeeAllPage(objectGraph, page, mediaApiResponse));
+ }
+ return page;
+ });
+ },
+};
+//# sourceMappingURL=routable-arcade-see-all-page-controller.js.map \ No newline at end of file