Skip to content

Commit 505bb7d

Browse files
committed
Initialized sidebar and menu-option, update user org layout
1 parent c9e3ffe commit 505bb7d

File tree

3 files changed

+131
-0
lines changed

3 files changed

+131
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import React from 'react'
2+
3+
type Props = {
4+
children: React.ReactNode
5+
params: { agencyId: string }
6+
}
7+
8+
const layout = ({ children, params }: Props) => {
9+
return (
10+
<div>layout</div>
11+
)
12+
}
13+
14+
export default layout;

src/components/sidebar/index.tsx

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import { getAuthUserDetails } from '@/lib/queries'
2+
import { off } from 'process'
3+
import React from 'react'
4+
import MenuOptions from './menu-options'
5+
6+
type Props = {
7+
id: string
8+
type: 'agency' | 'subaccount'
9+
}
10+
11+
const Sidebar = async ({ id, type }: Props) => {
12+
const user = await getAuthUserDetails()
13+
if (!user) return null
14+
15+
if (!user.Agency) return
16+
17+
const details =
18+
type === 'agency'
19+
? user?.Agency
20+
: user?.Agency.SubAccount.find((subaccount) => subaccount.id === id)
21+
22+
const isWhiteLabeledAgency = user.Agency.whiteLabel
23+
if (!details) return
24+
25+
let sideBarLogo = user.Agency.agencyLogo || '/assets/plura-logo.svg'
26+
27+
if (!isWhiteLabeledAgency) {
28+
if (type === 'subaccount') {
29+
sideBarLogo =
30+
user?.Agency.SubAccount.find((subaccount) => subaccount.id === id)
31+
?.subAccountLogo || user.Agency.agencyLogo
32+
}
33+
}
34+
35+
const sidebarOpt =
36+
type === 'agency'
37+
? user.Agency.SidebarOption || []
38+
: user.Agency.SubAccount.find((subaccount) => subaccount.id === id)
39+
?.SidebarOption || []
40+
41+
const subaccounts = user.Agency.SubAccount.filter((subaccount) =>
42+
user.Permissions.find(
43+
(permission) =>
44+
permission.subAccountId === subaccount.id && permission.access
45+
)
46+
)
47+
48+
return (
49+
<>
50+
<MenuOptions
51+
defaultOpen={true}
52+
details={details}
53+
id={id}
54+
sidebarLogo={sideBarLogo}
55+
sidebarOpt={sidebarOpt}
56+
subAccounts={subaccounts}
57+
user={user}
58+
/>
59+
<MenuOptions
60+
details={details}
61+
id={id}
62+
sidebarLogo={sideBarLogo}
63+
sidebarOpt={sidebarOpt}
64+
subAccounts={subaccounts}
65+
user={user}
66+
/>
67+
</>
68+
)
69+
}
70+
71+
export default Sidebar
+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import React from 'react'
2+
import {
3+
Agency,
4+
AgencySidebarOption,
5+
SubAccount,
6+
SubAccountSidebarOption,
7+
} from '@prisma/client'
8+
import { useEffect, useMemo, useState } from 'react'
9+
10+
type Props = {
11+
12+
defaultOpen?: boolean
13+
subAccounts: SubAccount[]
14+
sidebarOpt: AgencySidebarOption[] | SubAccountSidebarOption[]
15+
sidebarLogo: string
16+
details: any
17+
user: any
18+
id: string
19+
}
20+
21+
const MenuOptions = ({
22+
details,
23+
id,
24+
sidebarLogo,
25+
sidebarOpt,
26+
subAccounts,
27+
user,
28+
defaultOpen,
29+
}: Props) => {
30+
// const { setOpen } = useModal()
31+
const [isMounted, setIsMounted] = useState(false)
32+
33+
const openState = useMemo(
34+
() => (defaultOpen ? { open: true } : {}),
35+
[defaultOpen]
36+
)
37+
38+
useEffect(() => {
39+
setIsMounted(true)
40+
}, [])
41+
42+
return (
43+
<div>MenuOptions</div>
44+
)
45+
}
46+
export default MenuOptions;

0 commit comments

Comments
 (0)