summaryrefslogtreecommitdiff
path: root/node_modules/@jet-app/app-store/tmp/src/controllers/arcade/arcade-grouping-page-intent-controller.js
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/arcade-grouping-page-intent-controller.js
init commit
Diffstat (limited to 'node_modules/@jet-app/app-store/tmp/src/controllers/arcade/arcade-grouping-page-intent-controller.js')
-rw-r--r--node_modules/@jet-app/app-store/tmp/src/controllers/arcade/arcade-grouping-page-intent-controller.js71
1 files changed, 71 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