fix: in setting page display admin tab to only admin users
All checks were successful
Release to Staging / build_and_release (push) Successful in 45s
All checks were successful
Release to Staging / build_and_release (push) Successful in 45s
This commit is contained in:
parent
03f9269eb6
commit
822d5110a8
@ -14,6 +14,8 @@ import '../styles/settings.css'
|
||||
import '../styles/styles.css'
|
||||
import '../styles/write.css'
|
||||
import { copyTextToClipboard } from '../utils'
|
||||
import { MetadataController } from '../controllers'
|
||||
import { useEffect, useState } from 'react'
|
||||
|
||||
export const SettingsPage = () => {
|
||||
const location = useLocation()
|
||||
@ -47,8 +49,21 @@ export const SettingsPage = () => {
|
||||
|
||||
const SettingTabs = () => {
|
||||
const location = useLocation()
|
||||
const [isAdmin, setIsAdmin] = useState(false)
|
||||
const userState = useAppSelector((state) => state.user)
|
||||
|
||||
useEffect(() => {
|
||||
MetadataController.getInstance().then((controller) => {
|
||||
if (userState.auth && userState.user?.npub) {
|
||||
setIsAdmin(
|
||||
controller.adminNpubs.includes(userState.user.npub as string)
|
||||
)
|
||||
} else {
|
||||
setIsAdmin(false)
|
||||
}
|
||||
})
|
||||
}, [userState])
|
||||
|
||||
const handleSignOut = () => {
|
||||
logout()
|
||||
}
|
||||
@ -120,26 +135,28 @@ const SettingTabs = () => {
|
||||
</svg>
|
||||
Preference
|
||||
</Link>
|
||||
<Link
|
||||
className={`btn btnMain btnMainAltText btnMainClear ${
|
||||
location.pathname === appRoutes.settingsAdmin
|
||||
? 'btnMainClearActive'
|
||||
: ''
|
||||
}`}
|
||||
role='button'
|
||||
to={appRoutes.settingsAdmin}
|
||||
>
|
||||
<svg
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
viewBox='0 -32 576 576'
|
||||
width='1em'
|
||||
height='1em'
|
||||
fill='currentColor'
|
||||
{isAdmin && (
|
||||
<Link
|
||||
className={`btn btnMain btnMainAltText btnMainClear ${
|
||||
location.pathname === appRoutes.settingsAdmin
|
||||
? 'btnMainClearActive'
|
||||
: ''
|
||||
}`}
|
||||
role='button'
|
||||
to={appRoutes.settingsAdmin}
|
||||
>
|
||||
<path d='M560 448H512V113.5c0-27.25-21.5-49.5-48-49.5L352 64.01V128h96V512h112c8.875 0 16-7.125 16-15.1v-31.1C576 455.1 568.9 448 560 448zM280.3 1.007l-192 49.75C73.1 54.51 64 67.76 64 82.88V448H16c-8.875 0-16 7.125-16 15.1v31.1C0 504.9 7.125 512 16 512H320V33.13C320 11.63 300.5-4.243 280.3 1.007zM232 288c-13.25 0-24-14.37-24-31.1c0-17.62 10.75-31.1 24-31.1S256 238.4 256 256C256 273.6 245.3 288 232 288z'></path>
|
||||
</svg>
|
||||
Admin
|
||||
</Link>
|
||||
<svg
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
viewBox='0 -32 576 576'
|
||||
width='1em'
|
||||
height='1em'
|
||||
fill='currentColor'
|
||||
>
|
||||
<path d='M560 448H512V113.5c0-27.25-21.5-49.5-48-49.5L352 64.01V128h96V512h112c8.875 0 16-7.125 16-15.1v-31.1C576 455.1 568.9 448 560 448zM280.3 1.007l-192 49.75C73.1 54.51 64 67.76 64 82.88V448H16c-8.875 0-16 7.125-16 15.1v31.1C0 504.9 7.125 512 16 512H320V33.13C320 11.63 300.5-4.243 280.3 1.007zM232 288c-13.25 0-24-14.37-24-31.1c0-17.62 10.75-31.1 24-31.1S256 238.4 256 256C256 273.6 245.3 288 232 288z'></path>
|
||||
</svg>
|
||||
Admin
|
||||
</Link>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{userState.auth &&
|
||||
|
Loading…
Reference in New Issue
Block a user