import { SideMenuItemProps } from "./SideMenu"
import {
BsGearFill,
BsPaletteFill,
BsCameraFill,
BsWindow,
BsPersonCircle,
BsJoystick,
BsMedium,
BsFingerprint,
BsFront,
BsCloudUploadFill,
BsSearch,
BsBucket,
BsHddNetwork,
BsArrowLeftRight,
} from "solid-icons/bs"
import { FiLogIn } from "solid-icons/fi"
import { SiMetabase } from "solid-icons/si"
import { CgDatabase } from "solid-icons/cg"
import { OcWorkflow2 } from "solid-icons/oc"
import { IoCopy, IoHome, IoMagnetOutline } from "solid-icons/io"
import { Component, lazy } from "solid-js"
import { joinBase } from "~/utils"
import { Group, UserRole } from "~/types"
import { FaSolidBook, FaSolidDatabase } from "solid-icons/fa"
import { TbArchive, TbDevices2 } from "solid-icons/tb"
import { TbLink } from "solid-icons/tb"
import { FaSolidUserGear } from "solid-icons/fa"
import { BiRegularMessageAltDetail } from "solid-icons/bi"
import { RiCommunicationChatSettingsLine } from "solid-icons/ri"
export type SideMenuItem = SideMenuItemProps & {
component?: Component
children?: SideMenuItem[]
}
const CommonSettings = lazy(() => import("./settings/Common"))
export const side_menu_items: SideMenuItem[] = [
{
title: "manage.sidemenu.profile",
icon: BsFingerprint,
to: "/@manage",
role: UserRole.GUEST,
component: lazy(() => import("./users/Profile")),
},
{
title: "manage.sidemenu.settings",
icon: BsGearFill,
to: "/@manage/settings",
role: UserRole.ADMIN,
children: [
{
title: "manage.sidemenu.site",
icon: BsWindow,
to: "/@manage/settings/site",
component: () => ,
},
{
title: "manage.sidemenu.style",
icon: BsPaletteFill,
to: "/@manage/settings/style",
component: () => ,
},
{
title: "manage.sidemenu.preview",
icon: BsCameraFill,
to: "/@manage/settings/preview",
component: () => ,
},
{
title: "manage.sidemenu.global",
icon: BsJoystick,
to: "/@manage/settings/global",
component: () => ,
},
{
title: "manage.sidemenu.sso",
icon: FiLogIn,
to: "/@manage/settings/sso",
component: () => ,
},
{
title: "manage.sidemenu.ldap",
icon: FiLogIn,
to: "/@manage/settings/ldap",
component: () => ,
},
{
title: "manage.sidemenu.s3",
icon: BsBucket,
to: "/@manage/settings/s3",
component: lazy(() => import("./settings/S3")),
},
{
title: "manage.sidemenu.tag",
icon: (props: { active?: boolean; style?: any }) => (
),
to: "/@manage/settings/tag",
component: lazy(() => import("./settings/Tag")),
},
{
title: "manage.sidemenu.ftp",
icon: BsHddNetwork,
to: "/@manage/settings/ftp",
component: () => ,
},
{
title: "manage.sidemenu.frp",
icon: BsHddNetwork,
to: "/@manage/settings/frp",
component: lazy(() => import("./settings/Frp")),
},
{
title: "manage.sidemenu.traffic",
icon: BsArrowLeftRight,
to: "/@manage/settings/traffic",
component: () => ,
},
{
title: "manage.sidemenu.other",
icon: BsMedium,
to: "/@manage/settings/other",
component: lazy(() => import("./settings/Other")),
},
],
},
{
title: "manage.sidemenu.tasks",
icon: OcWorkflow2,
to: "/@manage/tasks",
role: UserRole.GENERAL,
children: [
{
title: "manage.sidemenu.offline_download",
icon: IoMagnetOutline,
to: "/@manage/tasks/offline_download",
role: UserRole.GENERAL,
component: lazy(() => import("./tasks/offline_download")),
},
// {
// title: "manage.sidemenu.aria2",
// icon: BsCloudArrowDownFill,
// to: "/@manage/tasks/aria2",
// component: lazy(() => import("./tasks/Aria2")),
// },
// {
// title: "manage.sidemenu.qbit",
// icon: FaBrandsQuinscape,
// to: "/@manage/tasks/qbit",
// component: lazy(() => import("./tasks/Qbit")),
// },
{
title: "manage.sidemenu.upload",
icon: BsCloudUploadFill,
to: "/@manage/tasks/upload",
role: UserRole.GENERAL,
component: lazy(() => import("./tasks/Upload")),
},
{
title: "manage.sidemenu.copy",
icon: IoCopy,
to: "/@manage/tasks/copy",
role: UserRole.GENERAL,
component: lazy(() => import("./tasks/Copy")),
},
{
title: "manage.sidemenu.decompress",
icon: TbArchive,
to: "/@manage/tasks/decompress",
role: UserRole.GENERAL,
component: lazy(() => import("./tasks/Decompress")),
},
{
title: "manage.sidemenu.s3_transition",
icon: BsBucket,
to: "/@manage/tasks/s3_transition",
role: UserRole.GENERAL,
component: lazy(() => import("./tasks/S3Transition")),
},
],
},
// {
// title: "manage.sidemenu.permissions",
// icon: (props: { active?: boolean; style?: any }) => (
//
// ),
// to: "/@manage/permissions",
// children: [
// {
// title: "manage.sidemenu.role",
// icon: (props: { active?: boolean; style?: any }) => (
//
// ),
// to: "/@manage/permissions/role",
// component: lazy(() => import("./permissions/Role")),
// },
// ],
// },
{
title: "manage.sidemenu.role",
icon: (props: { active?: boolean; style?: any }) => (
),
to: "/@manage/permissions/role",
role: UserRole.ADMIN,
component: lazy(() => import("./permissions/Role")),
},
{
title: "manage.sidemenu.users",
icon: BsPersonCircle,
to: "/@manage/users",
role: UserRole.ADMIN,
component: lazy(() => import("./users/Users")),
},
{
title: "manage.sidemenu.session",
icon: (props: { active?: boolean; style?: any }) => (
),
to: "/@manage/session",
role: UserRole.GENERAL,
children: [
{
title: "manage.sidemenu.my_session",
icon: (props: { active?: boolean; style?: any }) => (
),
to: "/@manage/session/my_session",
role: UserRole.GENERAL,
component: lazy(() => import("./session/mySession")),
},
{
title: "manage.sidemenu.session_management",
role: UserRole.ADMIN,
icon: (props: { active?: boolean; style?: any }) => (
),
to: "/@manage/session/management",
component: lazy(() => import("./session/management")),
},
],
},
{
title: "manage.sidemenu.shares",
icon: TbLink,
to: "/@manage/shares",
role: UserRole.GENERAL,
component: lazy(() => import("./shares")),
},
{
title: "manage.sidemenu.storages",
icon: CgDatabase,
to: "/@manage/storages",
role: UserRole.ADMIN,
component: lazy(() => import("./storages/Storages")),
},
{
title: "manage.sidemenu.metas",
icon: SiMetabase,
to: "/@manage/metas",
role: UserRole.ADMIN,
component: lazy(() => import("./metas/Metas")),
},
{
title: "manage.sidemenu.indexes",
icon: BsSearch,
to: "/@manage/indexes",
role: UserRole.ADMIN,
component: lazy(() => import("./indexes/indexes")),
},
{
title: "manage.sidemenu.backup-restore",
to: "/@manage/backup-restore",
icon: FaSolidDatabase,
role: UserRole.ADMIN,
component: lazy(() => import("./backup-restore")),
},
{
title: "manage.sidemenu.about",
icon: BsFront,
to: "/@manage/about",
role: UserRole.GUEST,
component: lazy(() => import("./About")),
},
{
title: "manage.sidemenu.docs",
icon: FaSolidBook,
to: "https://alist.nn.ci",
role: UserRole.GUEST,
external: true,
},
{
title: "manage.sidemenu.home",
icon: IoHome,
to: "/",
role: UserRole.GUEST,
refresh: true,
},
]