40285-vm/frontend/src/menuAside.ts
2026-06-19 12:48:30 +00:00

551 lines
16 KiB
TypeScript

import * as icon from '@mdi/js';
import { MenuAsideItem } from './interfaces';
const resolveMenuIcon = (name: string) => (
name in icon ? (icon[name as keyof typeof icon] as string) : icon.mdiViewDashboardOutline
);
const menuAside: MenuAsideItem[] = [
{
icon: resolveMenuIcon('mdiOrbitVariant'),
label: 'VORTA Universe',
menu: [
{
href: '/vorta-universe#vorta-overview',
icon: resolveMenuIcon('mdiViewDashboardOutline'),
label: 'Dashboard',
},
{
href: '/vorta-universe#vorta-auth',
icon: resolveMenuIcon('mdiShieldKeyOutline'),
label: 'Login & OTP',
},
{
href: '/vorta-universe#vorta-modules',
icon: resolveMenuIcon('mdiApps'),
label: 'Modules',
},
{
href: '/vorta-feed',
icon: resolveMenuIcon('mdiPostOutline'),
label: 'VORTA Feed',
},
{
href: '/vorta-universe#vorta-social',
icon: resolveMenuIcon('mdiPostOutline'),
label: 'Feed Bisnis Dashboard',
},
{
href: '/vorta-universe#vorta-marketplace',
icon: resolveMenuIcon('mdiStorefrontOutline'),
label: 'Marketplace',
},
{
href: '/vorta-universe#vorta-settings',
icon: resolveMenuIcon('mdiCogOutline'),
label: 'Settings',
},
{
href: '/trust_profiles/trust_profiles-list',
icon: resolveMenuIcon('mdiShieldCheck'),
label: 'Nexus Score Entity',
permissions: 'READ_TRUST_PROFILES',
},
{
href: '/wallets/wallets-list',
icon: resolveMenuIcon('mdiWallet'),
label: 'Wallet Entity',
permissions: 'READ_WALLETS',
},
{
href: '/products/products-list',
icon: resolveMenuIcon('mdiPackageVariantClosed'),
label: 'Products Entity',
permissions: 'READ_PRODUCTS',
},
],
},
{
href: '/vorta-commerce',
icon: resolveMenuIcon('mdiStorefrontOutline'),
label: '1. VORTA Commerce',
},
{
href: '/vorta-synapse',
label: '2. Vorta Synapse',
icon: resolveMenuIcon('mdiTransitConnectionVariant'),
},
{
href: '/mega-super-app',
label: '3. Mega Super-App',
icon: resolveMenuIcon('mdiApps'),
},
{
href: '/vorta-universe#vorta-overview',
label: '4. Vorta Nexus',
icon: resolveMenuIcon('mdiShieldCheck'),
},
{
href: '/facta_queries/facta_queries-list',
label: '5. Facta.Ai',
icon: resolveMenuIcon('mdiShieldSearchOutline'),
permissions: 'READ_FACTA_QUERIES',
},
{
href: '/users/users-list',
label: 'Pengguna',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiAccountGroup ?? icon.mdiTable,
permissions: 'READ_USERS',
},
{
href: '/roles/roles-list',
label: 'Peran',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiShieldAccountVariantOutline ?? icon.mdiTable,
permissions: 'READ_ROLES',
},
{
href: '/permissions/permissions-list',
label: 'Izin Akses',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiShieldAccountOutline ?? icon.mdiTable,
permissions: 'READ_PERMISSIONS',
},
{
href: '/organizations/organizations-list',
label: 'Organisasi',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon: icon.mdiTable ?? icon.mdiTable,
permissions: 'READ_ORGANIZATIONS',
},
{
href: '/trust_profiles/trust_profiles-list',
label: 'Profil Kepercayaan',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiShieldCheck' in icon
? icon['mdiShieldCheck' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_TRUST_PROFILES',
},
{
href: '/identity_verifications/identity_verifications-list',
label: 'Verifikasi Identitas',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiCardAccountDetailsOutline' in icon
? icon['mdiCardAccountDetailsOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_IDENTITY_VERIFICATIONS',
},
{
href: '/wallets/wallets-list',
label: 'Dompet',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiWallet' in icon
? icon['mdiWallet' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_WALLETS',
},
{
href: '/wallet_transactions/wallet_transactions-list',
label: 'Transaksi Dompet',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiSwapHorizontal' in icon
? icon['mdiSwapHorizontal' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_WALLET_TRANSACTIONS',
},
{
href: '/chats/chats-list',
label: 'Percakapan',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiChat' in icon
? icon['mdiChat' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_CHATS',
},
{
href: '/chat_participants/chat_participants-list',
label: 'Peserta Percakapan',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiAccountGroup' in icon
? icon['mdiAccountGroup' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_CHAT_PARTICIPANTS',
},
{
href: '/messages/messages-list',
label: 'Pesan',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiMessageTextOutline' in icon
? icon['mdiMessageTextOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_MESSAGES',
},
{
href: '/stores/stores-list',
label: 'Toko',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiStore' in icon
? icon['mdiStore' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_STORES',
},
{
href: '/addresses/addresses-list',
label: 'Alamat',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiMapMarker' in icon
? icon['mdiMapMarker' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_ADDRESSES',
},
{
href: '/product_categories/product_categories-list',
label: 'Kategori Produk',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiShapeOutline' in icon
? icon['mdiShapeOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_PRODUCT_CATEGORIES',
},
{
href: '/products/products-list',
label: 'Produk',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiPackageVariantClosed' in icon
? icon['mdiPackageVariantClosed' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_PRODUCTS',
},
{
href: '/orders/orders-list',
label: 'Pesanan',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiReceiptTextOutline' in icon
? icon['mdiReceiptTextOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_ORDERS',
},
{
href: '/order_items/order_items-list',
label: 'Item Pesanan',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiFormatListBulleted' in icon
? icon['mdiFormatListBulleted' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_ORDER_ITEMS',
},
{
href: '/payments/payments-list',
label: 'Pembayaran',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiCreditCardOutline' in icon
? icon['mdiCreditCardOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_PAYMENTS',
},
{
href: '/product_reviews/product_reviews-list',
label: 'Ulasan Produk',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiStarCircleOutline' in icon
? icon['mdiStarCircleOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_PRODUCT_REVIEWS',
},
{
href: '/shipments/shipments-list',
label: 'Pengiriman',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiTruckDeliveryOutline' in icon
? icon['mdiTruckDeliveryOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_SHIPMENTS',
},
{
href: '/posts/posts-list',
label: 'Postingan',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiPlayCircleOutline' in icon
? icon['mdiPlayCircleOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_POSTS',
},
{
href: '/deep_dive_links/deep_dive_links-list',
label: 'Tautan Deep Dive',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiLinkVariant' in icon
? icon['mdiLinkVariant' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_DEEP_DIVE_LINKS',
},
{
href: '/citations/citations-list',
label: 'Sitasi',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiFileDocumentCheckOutline' in icon
? icon['mdiFileDocumentCheckOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_CITATIONS',
},
{
href: '/post_engagements/post_engagements-list',
label: 'Interaksi Postingan',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiThumbUpOutline' in icon
? icon['mdiThumbUpOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_POST_ENGAGEMENTS',
},
{
href: '/rewards/rewards-list',
label: 'Hadiah',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiTrophyOutline' in icon
? icon['mdiTrophyOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_REWARDS',
},
{
href: '/forum_spaces/forum_spaces-list',
label: 'Ruang Forum',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiForumOutline' in icon
? icon['mdiForumOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_FORUM_SPACES',
},
{
href: '/forum_threads/forum_threads-list',
label: 'Topik Forum',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiMessageBulleted' in icon
? icon['mdiMessageBulleted' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_FORUM_THREADS',
},
{
href: '/forum_posts/forum_posts-list',
label: 'Posting Forum',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiReplyOutline' in icon
? icon['mdiReplyOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_FORUM_POSTS',
},
{
href: '/job_companies/job_companies-list',
label: 'Perusahaan Lowongan',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiOfficeBuildingOutline' in icon
? icon['mdiOfficeBuildingOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_JOB_COMPANIES',
},
{
href: '/job_listings/job_listings-list',
label: 'Daftar Lowongan',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiBriefcaseOutline' in icon
? icon['mdiBriefcaseOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_JOB_LISTINGS',
},
{
href: '/job_applications/job_applications-list',
label: 'Lamaran Kerja',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiFileAccountOutline' in icon
? icon['mdiFileAccountOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_JOB_APPLICATIONS',
},
{
href: '/user_credentials/user_credentials-list',
label: 'Kredensial Pengguna',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiCertificateOutline' in icon
? icon['mdiCertificateOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_USER_CREDENTIALS',
},
{
href: '/affiliate_programs/affiliate_programs-list',
label: 'Program Afiliasi',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiAccountNetworkOutline' in icon
? icon['mdiAccountNetworkOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_AFFILIATE_PROGRAMS',
},
{
href: '/affiliate_memberships/affiliate_memberships-list',
label: 'Keanggotaan Afiliasi',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiLinkBoxOutline' in icon
? icon['mdiLinkBoxOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_AFFILIATE_MEMBERSHIPS',
},
{
href: '/commissions/commissions-list',
label: 'Komisi',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiCashCheck' in icon
? icon['mdiCashCheck' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_COMMISSIONS',
},
{
href: '/geo_rules/geo_rules-list',
label: 'Aturan Geo',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiMapMarkerRadiusOutline' in icon
? icon['mdiMapMarkerRadiusOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_GEO_RULES',
},
{
href: '/facta_queries/facta_queries-list',
label: 'Facta.Ai Kueri',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiMagnify' in icon
? icon['mdiMagnify' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_FACTA_QUERIES',
},
{
href: '/facta_answers/facta_answers-list',
label: 'Facta.Ai Jawaban',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiShieldSearchOutline' in icon
? icon['mdiShieldSearchOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_FACTA_ANSWERS',
},
{
href: '/subscriptions/subscriptions-list',
label: 'Langganan',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiCrownOutline' in icon
? icon['mdiCrownOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_SUBSCRIPTIONS',
},
{
href: '/api_clients/api_clients-list',
label: 'Klien API',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiApi' in icon
? icon['mdiApi' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_API_CLIENTS',
},
{
href: '/audit_events/audit_events-list',
label: 'Peristiwa Audit',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
icon:
'mdiClipboardTextOutline' in icon
? icon['mdiClipboardTextOutline' as keyof typeof icon]
: (icon.mdiTable ?? icon.mdiTable),
permissions: 'READ_AUDIT_EVENTS',
},
{
href: '/profile',
label: 'Profil',
icon: icon.mdiAccountCircle,
},
{
href: '/api-docs',
target: '_blank',
label: 'Dokumentasi API',
icon: icon.mdiFileCode,
permissions: 'READ_API_DOCS',
},
];
export default menuAside;