From 08fb386b14e6c810cfb64831862642b97f23b2c0 Mon Sep 17 00:00:00 2001 From: Viswamedha Nalabotu Date: Sun, 18 Jan 2026 16:15:24 +0000 Subject: [PATCH] Added organisation views, types, api and store patterns --- src/App.vue | 21 +-- src/router/api.ts | 6 + src/router/index.ts | 12 ++ src/stores/userStore.ts | 52 +++++++ src/types/organization.ts | 31 ++++ src/views/OrganizationView.vue | 265 ++++++++++++++++++++++++++++++++ src/views/OrganizationsView.vue | 104 +++++++++++++ src/views/PricingView.vue | 6 +- 8 files changed, 479 insertions(+), 18 deletions(-) create mode 100644 src/types/organization.ts create mode 100644 src/views/OrganizationView.vue create mode 100644 src/views/OrganizationsView.vue diff --git a/src/App.vue b/src/App.vue index 126feb6..22139fd 100644 --- a/src/App.vue +++ b/src/App.vue @@ -37,10 +37,10 @@ const navItems: NavItem[] = [ { key: '/pricing', label: 'Pricing', icon: PayCircleOutlined, path: '/pricing' }, { key: '/agents', label: 'Agents', icon: RobotOutlined, path: '/agents', manager: true }, { - key: '/organizations', + key: '/organization', label: 'Organizations', icon: BuildOutlined, - path: '/organizations', + path: '/organization', children: [ { key: '/roles', label: 'Roles', icon: TeamOutlined, path: '/roles', manager: true }, { key: '/onboarding', label: 'Onboarding', icon: RocketOutlined, path: '/onboarding' }, @@ -86,11 +86,9 @@ const onSelect = (info: SimpleMenuInfo) => { } } if (found && found.path && route.path !== found.path) { - const selectedOrgUuid = ( - userStore as unknown as { selectedOrganizationUuid?: string | null } - ).selectedOrganizationUuid - if (found.path === '/organizations' && selectedOrgUuid) { - router.push(`/organizations/${selectedOrgUuid}`) + const selectedOrgUuid = userStore.selectedOrganizationUuid + if (found.path === '/organization' && selectedOrgUuid) { + router.push(`/organization/${selectedOrgUuid}`) } else { router.push(found.path) } @@ -106,14 +104,7 @@ onMounted(() => { userStore.fetchSession() }) -const user = userStore as unknown as { - organizations?: Array<{ uuid: string; name: string }> - selectedOrganizationUuid?: string | null - setSelectedOrganization?: (val: string | null) => void - displayName?: string - loading?: boolean - isAuthenticated?: boolean -} +const user = userStore