diff options
| author | rxliuli <rxliuli@gmail.com> | 2025-11-04 05:03:50 +0800 |
|---|---|---|
| committer | rxliuli <rxliuli@gmail.com> | 2025-11-04 05:03:50 +0800 |
| commit | bce557cc2dc767628bed6aac87301a1be7c5431b (patch) | |
| tree | b51a051228d01fe3306cd7626d4a96768aadb944 /src/jet/intents/static-message-pages/invoice-page-intent-controller.ts | |
init commit
Diffstat (limited to 'src/jet/intents/static-message-pages/invoice-page-intent-controller.ts')
| -rw-r--r-- | src/jet/intents/static-message-pages/invoice-page-intent-controller.ts | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/jet/intents/static-message-pages/invoice-page-intent-controller.ts b/src/jet/intents/static-message-pages/invoice-page-intent-controller.ts new file mode 100644 index 0000000..caa02f4 --- /dev/null +++ b/src/jet/intents/static-message-pages/invoice-page-intent-controller.ts @@ -0,0 +1,41 @@ +import type { IntentController } from '@jet/environment/dispatching'; +import type { RouteProvider } from '@jet/environment/routing'; +import type { AppStoreObjectGraph } from '@jet-app/app-store/foundation/runtime/app-store-object-graph'; +import { withActiveIntent } from '@jet-app/app-store/foundation/dependencies/active-intent'; +import { generateRoutes } from '@jet-app/app-store/common/util/generate-routes'; +import { injectWebNavigation } from '@jet-app/app-store/common/web-navigation/inject-web-navigation'; + +import { StaticMessagePage } from '~/jet/models/static-message-page'; + +const { routes, makeCanonicalUrl } = generateRoutes( + (opts) => ({ + ...opts, + $kind: 'InvoicePageIntent', + }), + '/invoice', +); + +export const InvoicePageIntentController: IntentController<any> & + RouteProvider = { + $intentKind: 'InvoicePageIntent', + + routes, + + async perform(intent, objectGraphWithoutActiveIntent: AppStoreObjectGraph) { + return await withActiveIntent( + objectGraphWithoutActiveIntent, + intent, + async (objectGraph) => { + const page = new StaticMessagePage({ + titleLocKey: 'ASE.Web.AppStore.Invoice.Title', + contentType: 'invoice', + }); + + page.canonicalURL = makeCanonicalUrl(objectGraph, intent); + + injectWebNavigation(objectGraph, page, intent.platform); + return page; + }, + ); + }, +}; |
