@@ -2,6 +2,7 @@ import { BaseIconNamesType } from '@/components/icons/base-icon';
22import { apiResourceItemPathRead } from '../server' ;
33import { TWebsiteItemBySubdomain , TWebsiteMenu } from '@/types' ;
44import { urlToWww } from '@/init' ;
5+ import _ from 'lodash' ;
56
67export async function dataSiteBySubdomain ( subdomain : string ) {
78 return await apiResourceItemPathRead ( 'websites' )
@@ -17,6 +18,12 @@ export async function dataSiteBeritaBySlug(slug: string) {
1718 . catch ( ( ) => null ) ;
1819}
1920
21+ export async function dataSitePageBySlug ( websiteId : string , slug : string ) {
22+ return await apiResourceItemPathRead ( 'web_pages' )
23+ . bySlug ( { paths : [ websiteId , slug ] } )
24+ . catch ( ( ) => null ) ;
25+ }
26+
2027export function dataSiteMenuProfilItems (
2128 site : TWebsiteItemBySubdomain
2229) : TWebsiteMenu [ 'items' ] {
@@ -110,6 +117,26 @@ export async function dataSiteMenu(site: TWebsiteItemBySubdomain) {
110117 items : dataSiteMenuDokumenItems ( site ) ,
111118 } ,
112119 ] ;
120+ const menusData = await apiResourceItemPathRead ( 'web_menu' )
121+ . siteMenu ( { paths : [ site . id ] } )
122+ . catch ( ( e ) => null ) ;
123+
124+ if ( menusData ) {
125+ _ . forEach ( menusData , ( menu ) => {
126+ menuItems . push ( {
127+ title : menu . title ,
128+ link : `/menu/${ menu . slug } ` ,
129+ items : _ . map ( _ . sortBy ( menu . pages , 'sort' ) , ( page ) => {
130+ return {
131+ title : page . title ,
132+ link : `/page/${ page . slug } ` ,
133+ description : page . description ?? '' ,
134+ icon : 'newspaper' ,
135+ } ;
136+ } ) ,
137+ } ) ;
138+ } ) ;
139+ }
113140 if ( modules . indexOf ( 'aduan_publik' ) >= 0 ) {
114141 menuItems . push ( {
115142 title : 'Aduan Publik' ,
0 commit comments