chore: remove unused files flagged by react-doctor
Deleted modules with no remaining references: - app/person/dashboard/components/Icon.tsx - components/label/hooks/useAuth.ts - components/layout/components/icons/custom.tsx - components/tree-select/index.tsx Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,115 +0,0 @@
|
||||
"use client"
|
||||
|
||||
import { usePermissionStore } from "@/components/label/store/auth"
|
||||
import { usePathname } from "next/navigation"
|
||||
|
||||
interface PermissionItem {
|
||||
[x: string]: [boolean, null, string]
|
||||
}
|
||||
|
||||
type PermissionMap = {
|
||||
[x: string]: PermissionItem
|
||||
}
|
||||
|
||||
const mappingList: { [x: string]: [string, string] } = {
|
||||
"/person/dashboard": ["task", "view"],
|
||||
"/person/report": ["daily_work", "self_view"],
|
||||
"/person/workload": ["workload", "self_view"],
|
||||
}
|
||||
|
||||
export const headerBarCheckItems = (data: PermissionMap) => {
|
||||
const projectTitle = [
|
||||
["daily_work", "self_view"],
|
||||
["label_schema", "view"],
|
||||
["project", "view"],
|
||||
["task", "view"],
|
||||
] as const
|
||||
|
||||
let projectVisible = false
|
||||
projectTitle.forEach(([prop, subProp]) => {
|
||||
if (data[prop] && data[prop][subProp] && data[prop][subProp][0]) {
|
||||
projectVisible = true
|
||||
}
|
||||
})
|
||||
|
||||
const staffTitle = [
|
||||
["daily_work", "team_view"],
|
||||
["user", "view"],
|
||||
["user", "group_view"],
|
||||
] as const
|
||||
|
||||
let staffVisible = false
|
||||
staffTitle.forEach(([prop, subProp]) => {
|
||||
if (data[prop] && data[prop][subProp] && data[prop][subProp][0]) {
|
||||
staffVisible = true
|
||||
}
|
||||
})
|
||||
|
||||
return [projectVisible, staffVisible]
|
||||
}
|
||||
|
||||
const useAuth = () => {
|
||||
const pathname = usePathname()
|
||||
const detailInfo = usePermissionStore((s) => s.detailInfo)
|
||||
const permission = detailInfo?.permissions as PermissionMap | undefined
|
||||
const roleName: string[] = detailInfo?.role_name ?? []
|
||||
|
||||
return {
|
||||
hasPermission: () => {
|
||||
if (
|
||||
[
|
||||
"/",
|
||||
"/login",
|
||||
"/management",
|
||||
"/management/person/dashboard",
|
||||
"/management/team",
|
||||
].includes(pathname)
|
||||
) {
|
||||
return true
|
||||
}
|
||||
|
||||
if (!permission) return false
|
||||
if (mappingList[pathname]) {
|
||||
const [prop, subProp] = mappingList[pathname]
|
||||
return (
|
||||
!!permission[prop] &&
|
||||
!!permission[prop][subProp] &&
|
||||
!!permission[prop][subProp][0]
|
||||
)
|
||||
}
|
||||
return false
|
||||
},
|
||||
// path 跳转是否可见
|
||||
canNv: (path: string, type = "view") => {
|
||||
if (!permission) return false
|
||||
if (mappingList[path]) {
|
||||
const [prop] = mappingList[path]
|
||||
return (
|
||||
!!permission[prop] &&
|
||||
!!permission[prop][type] &&
|
||||
!!permission[prop][type][0]
|
||||
)
|
||||
}
|
||||
return false
|
||||
},
|
||||
// 当前页面是否可见某个操作
|
||||
isShow: (type = "view") => {
|
||||
if (!permission) return false
|
||||
if (mappingList[pathname]) {
|
||||
const [prop] = mappingList[pathname]
|
||||
return (
|
||||
!!permission[prop] &&
|
||||
!!permission[prop][type] &&
|
||||
!!permission[prop][type][0]
|
||||
)
|
||||
}
|
||||
return false
|
||||
},
|
||||
checkRole: (name: string) => {
|
||||
if (!name) return false
|
||||
return roleName.includes(name)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
export default useAuth
|
||||
Reference in New Issue
Block a user