@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
172 lines (163 loc) • 3.7 kB
text/typescript
/**
* Admin Dashboard Module
* Main export file for the CMS admin interface
*/
// Types
export * from "./types";
// Context and Hooks
export { default as AdminLayoutProvider, useAdminLayout } from "./context";
// Components
export {
AdminLayout,
Sidebar,
Header,
ContentArea,
NavigationMenu,
BreadcrumbNavigation,
UserMenu,
NotificationsPanel,
SearchBar,
} from "./components";
// Default configuration and navigation setup
import {
NavigationGroup,
UserMenuConfig,
DEFAULT_LAYOUT_CONFIG,
} from "./types";
// Default navigation configuration for CMS
export const DEFAULT_CMS_NAVIGATION: NavigationGroup[] = [
{
id: "main",
label: "주요 메뉴",
items: [
{
id: "dashboard",
label: "대시보드",
icon: "dashboard",
href: "/admin",
isActive: true,
},
{
id: "sites",
label: "사이트 관리",
icon: "sites",
href: "/admin/sites",
children: [
{
id: "sites-list",
label: "사이트 목록",
icon: "sites",
href: "/admin/sites",
},
{
id: "sites-create",
label: "새 사이트",
icon: "sites",
href: "/admin/sites/create",
},
],
},
{
id: "content",
label: "콘텐츠 관리",
icon: "templates",
href: "/admin/content",
children: [
{
id: "sections",
label: "섹션 관리",
icon: "templates",
href: "/admin/sections",
},
{
id: "templates",
label: "템플릿 관리",
icon: "templates",
href: "/admin/templates",
},
],
},
],
},
{
id: "management",
label: "관리",
items: [
{
id: "users",
label: "사용자 관리",
icon: "users",
href: "/admin/users",
permissions: ["USER_READ"],
},
{
id: "analytics",
label: "분석",
icon: "analytics",
href: "/admin/analytics",
permissions: ["ANALYTICS_READ"],
},
{
id: "settings",
label: "설정",
icon: "settings",
href: "/admin/settings",
permissions: ["SYSTEM_SETTINGS"],
},
],
},
];
// Default user menu configuration
export const DEFAULT_USER_MENU: UserMenuConfig = {
showProfile: true,
showSettings: true,
showLogout: true,
items: [
{
id: "profile",
label: "프로필",
icon: "profile",
href: "/admin/profile",
},
{
id: "settings",
label: "계정 설정",
icon: "settings",
href: "/admin/account",
},
{
id: "divider",
label: "",
icon: "",
isDivider: true,
},
{
id: "logout",
label: "로그아웃",
icon: "logout",
onClick: () => {
// This should be implemented by the consuming application
console.log("Logout clicked - implement signOut logic");
},
},
],
};
// Utility function to initialize admin with default configuration
export function createAdminConfig(overrides?: {
navigation?: NavigationGroup[];
userMenu?: UserMenuConfig;
}) {
return {
layout: DEFAULT_LAYOUT_CONFIG,
navigation: overrides?.navigation || DEFAULT_CMS_NAVIGATION,
userMenu: overrides?.userMenu || DEFAULT_USER_MENU,
};
}
// Hook to get default configurations
export function useDefaultAdminConfig() {
return {
navigation: DEFAULT_CMS_NAVIGATION,
userMenu: DEFAULT_USER_MENU,
layout: DEFAULT_LAYOUT_CONFIG,
};
}