From 03f8793e31ff5818891f37e00bbbfbb1c2348544 Mon Sep 17 00:00:00 2001 From: Achintha Isuru Date: Thu, 5 Mar 2026 16:22:30 -0500 Subject: [PATCH 1/2] Use teamHubs API and update pnpm workspace Switch CreateOrderDialog to the new team hubs API: replace useListHubs with useListTeamHubs, iterate hubsData.teamHubs, and show h.hubName in the Select. Also adjust pnpm configuration: add packages: ['.'] to pnpm-workspace.yaml and remove the overrides block from pnpm-lock.yaml (overrides moved into the workspace file). These changes align the UI with the updated dataconnect-generated API shape and correct the pnpm workspace setup. --- apps/web/pnpm-lock.yaml | 3 --- apps/web/pnpm-workspace.yaml | 3 +++ .../operations/orders/components/CreateOrderDialog.tsx | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/web/pnpm-lock.yaml b/apps/web/pnpm-lock.yaml index 6f3eca62..bd577ae8 100644 --- a/apps/web/pnpm-lock.yaml +++ b/apps/web/pnpm-lock.yaml @@ -4,9 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - '@dataconnect/generated': link:src/dataconnect-generated - importers: .: diff --git a/apps/web/pnpm-workspace.yaml b/apps/web/pnpm-workspace.yaml index 117a15bd..9410b45d 100644 --- a/apps/web/pnpm-workspace.yaml +++ b/apps/web/pnpm-workspace.yaml @@ -1,2 +1,5 @@ +packages: + - '.' + overrides: '@dataconnect/generated': link:src/dataconnect-generated diff --git a/apps/web/src/features/operations/orders/components/CreateOrderDialog.tsx b/apps/web/src/features/operations/orders/components/CreateOrderDialog.tsx index 718e6e82..763e1f81 100644 --- a/apps/web/src/features/operations/orders/components/CreateOrderDialog.tsx +++ b/apps/web/src/features/operations/orders/components/CreateOrderDialog.tsx @@ -6,7 +6,7 @@ import { DialogTitle, } from "@/common/components/ui/dialog"; import EventFormWizard from "./EventFormWizard"; -import { useCreateOrder, useListBusinesses, useListHubs } from "@/dataconnect-generated/react"; +import { useCreateOrder, useListBusinesses, useListTeamHubs } from "@/dataconnect-generated/react"; import { OrderType, OrderStatus } from "@/dataconnect-generated"; import { dataConnect } from "@/features/auth/firebase"; import { useToast } from "@/common/components/ui/use-toast"; @@ -26,7 +26,7 @@ export default function CreateOrderDialog({ open, onOpenChange }: CreateOrderDia const [selectedHubId, setSelectedHubId] = React.useState(""); const { data: businessesData } = useListBusinesses(dataConnect); - const { data: hubsData } = useListHubs(dataConnect); + const { data: hubsData } = useListTeamHubs(dataConnect); const createOrderMutation = useCreateOrder(dataConnect, { onSuccess: () => { @@ -109,9 +109,9 @@ export default function CreateOrderDialog({ open, onOpenChange }: CreateOrderDia - {hubsData?.hubs.map((h) => ( + {hubsData?.teamHubs.map((h) => ( - {h.name} + {h.hubName} ))} From 456ead39601e57bcf8f6c0f75da92c8bc00ea032 Mon Sep 17 00:00:00 2001 From: Achintha Isuru Date: Thu, 5 Mar 2026 16:42:11 -0500 Subject: [PATCH 2/2] feat(launchpad): embed M4 demonstration video and update links structure --- internal/launchpad/assets/data/links.json | 17 +++++++++++++++++ internal/launchpad/assets/images/icon-video.svg | 3 +++ internal/launchpad/assets/js/links-loader.js | 5 +++-- 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 internal/launchpad/assets/images/icon-video.svg diff --git a/internal/launchpad/assets/data/links.json b/internal/launchpad/assets/data/links.json index 08bc2bea..b10af39b 100644 --- a/internal/launchpad/assets/data/links.json +++ b/internal/launchpad/assets/data/links.json @@ -1,4 +1,21 @@ [ + { + "title": "Demonstrations", + "iconColorClass": "bg-cyan-100", + "iconPath": "assets/images/icon-video.svg", + "links": [ + { + "title": "KROW Platform - M4 Demonstration", + "url": "https://www.youtube.com/embed/hD-Ngt5xfSc", + "badge": "Demo", + "badgeColorClass": "bg-cyan-500", + "containerClass": "bg-gradient-to-r from-cyan-50 to-blue-100 hover:from-cyan-100 hover:to-blue-200", + "iconClass": "w-2 h-2 bg-cyan-500 rounded-full", + "textHoverClass": "group-hover:text-cyan-700", + "isVideo": true + } + ] + }, { "title": "Applications", "iconColorClass": "bg-primary-100", diff --git a/internal/launchpad/assets/images/icon-video.svg b/internal/launchpad/assets/images/icon-video.svg new file mode 100644 index 00000000..3f7d6840 --- /dev/null +++ b/internal/launchpad/assets/images/icon-video.svg @@ -0,0 +1,3 @@ + + + diff --git a/internal/launchpad/assets/js/links-loader.js b/internal/launchpad/assets/js/links-loader.js index 47f20edf..8a5eb6cd 100644 --- a/internal/launchpad/assets/js/links-loader.js +++ b/internal/launchpad/assets/js/links-loader.js @@ -48,8 +48,9 @@ async function loadLinks() {
${group.links.map(link => { const isPrototype = link.url.startsWith('/prototypes/'); - const hrefAttr = isPrototype ? 'href="#"' : `href="${link.url}" target="_blank"`; - const onclickAttr = isPrototype ? `onclick="event.preventDefault(); showView('iframe', this, '${link.url}', '${link.title}')"` : ''; + const isVideo = link.isVideo === true; + const hrefAttr = (isPrototype || isVideo) ? 'href="#"' : `href="${link.url}" target="_blank"`; + const onclickAttr = (isPrototype || isVideo) ? `onclick="event.preventDefault(); showView('iframe', this, '${link.url}', '${link.title}')"` : ''; return `