Skip to content

Commit

Permalink
feat(frontend): Add metadata to pages
Browse files Browse the repository at this point in the history
  • Loading branch information
aXenDeveloper committed Jul 14, 2024
1 parent 3c8957e commit 1abc5e1
Show file tree
Hide file tree
Showing 41 changed files with 278 additions and 75 deletions.
2 changes: 1 addition & 1 deletion apps/docs/content/docs/ui/meta.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"title": "ui",
"root": true,
"pages": ["---Guide---", "index", "..."]
"pages": ["---Introduction ---", "index", "theme", "---Components---", "..."]
}
19 changes: 19 additions & 0 deletions apps/docs/content/docs/ui/theme.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: Pages & Layouts
description: How to change pages / layout in VitNode
icon: Palette
---

VitNode uses [NextJS](https://nextjs.org/) in frontend with `app` directory. You can create own components like normal NextJS project. We have only few things about `routing` inside `app` directory that you need to know.

## VitNode folder

Inside `app` directory, you will see `(vitnode)` folders. That means it is a VitNode folder where we store own pages and layouts.

### Admin VitNode folder

test

## Default Page

trest
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import {
FilesAdvancedCoreAdminView,
FilesAdvancedCoreAdminViewProps,
generateMetadataFilesAdvancedCoreAdminView,
} from 'vitnode-frontend/admin/core/advanced/files/files-advanced-core-admin-view';

export const generateMetadata = generateMetadataFilesAdvancedCoreAdminView;

export default function Page(props: FilesAdvancedCoreAdminViewProps) {
return <FilesAdvancedCoreAdminView {...props} />;
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import {
LangsCoreAdminView,
LangsCoreAdminViewProps,
generateMetadataLangsCoreAdmin,
} from 'vitnode-frontend/admin/core/langs/langs-core-admin-view';

export const generateMetadata = generateMetadataLangsCoreAdmin;

export default function Page(props: LangsCoreAdminViewProps) {
return <LangsCoreAdminView {...props} />;
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
import { Metadata } from 'next';
import {
DevPluginAdminLayout,
generateMetadataDevPluginAdminLayout,
DevPluginAdminLayoutProps,
} from 'vitnode-frontend/admin/core/plugins/views/dev/layout/layout';

export async function generateMetadata(
props: DevPluginAdminLayoutProps,
): Promise<Metadata> {
const metadata = await generateMetadataDevPluginAdminLayout(props);

return metadata;
}
export const generateMetadata = generateMetadataDevPluginAdminLayout;

export default function Layout(props: DevPluginAdminLayoutProps) {
return <DevPluginAdminLayout {...props} />;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import {
PluginsAdminView,
PluginsAdminViewProps,
generateMetadataPluginsAdmin,
} from 'vitnode-frontend/admin/core/plugins/plugins-admin-view';

export const generateMetadata = generateMetadataPluginsAdmin;

export default function Page(props: PluginsAdminViewProps) {
return <PluginsAdminView {...props} />;
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { EmailSettingsAdminView } from 'vitnode-frontend/admin/core/settings/email/email-settings-admin-view';
import {
EmailSettingsAdminView,
generateMetadataEmailSettingsAdmin,
} from 'vitnode-frontend/admin/core/settings/email/email-settings-admin-view';

export const generateMetadata = generateMetadataEmailSettingsAdmin;

export default function Page() {
return <EmailSettingsAdminView />;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { MainSettingsCoreAdminView } from 'vitnode-frontend/admin/core/settings/main/main-settings-core-admin-view';
import {
MainSettingsCoreAdminView,
generateMetadataMainSettingsCoreAdmin,
} from 'vitnode-frontend/admin/core/settings/main/main-settings-core-admin-view';

export const generateMetadata = generateMetadataMainSettingsCoreAdmin;

export default function Page() {
return <MainSettingsCoreAdminView />;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { ManifestMetadataCoreAdminView } from 'vitnode-frontend/admin/core/settings/metadata/manifest/manifest-metadata-core-view';
import {
ManifestMetadataCoreAdminView,
generateMetadataManifestMetadataCoreAdmin,
} from 'vitnode-frontend/admin/core/settings/metadata/manifest/manifest-metadata-core-view';

export const generateMetadata = generateMetadataManifestMetadataCoreAdmin;

export default function Page() {
return <ManifestMetadataCoreAdminView />;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { CaptchaSecurityAdminView } from 'vitnode-frontend/admin/core/settings/security/captcha/captcha-security-admin-view';
import {
CaptchaSecurityAdminView,
generateMetadataCaptchaSecurityAdmin,
} from 'vitnode-frontend/admin/core/settings/security/captcha/captcha-security-admin-view';

export const generateMetadata = generateMetadataCaptchaSecurityAdmin;

export default function Page() {
return <CaptchaSecurityAdminView />;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { EditorAdminView } from 'vitnode-frontend/admin/core/styles/editor/editor-admin-view';
import {
EditorAdminView,
generateMetadataEditorAdmin,
} from 'vitnode-frontend/admin/core/styles/editor/editor-admin-view';

export const generateMetadata = generateMetadataEditorAdmin;

export default function Page() {
return <EditorAdminView />;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { NavAdminView } from 'vitnode-frontend/admin/core/styles/nav/nav-admin-view';
import {
NavAdminView,
generateMetadataNavAdmin,
} from 'vitnode-frontend/admin/core/styles/nav/nav-admin-view';

export const generateMetadata = generateMetadataNavAdmin;

export default function Page() {
return <NavAdminView />;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import {
GroupsMembersAdminView,
GroupsMembersAdminViewProps,
generateMetadataGroupsMembersAdminView,
} from 'vitnode-frontend/admin/members/groups/groups-members-admin-view';

export const generateMetadata = generateMetadataGroupsMembersAdminView;

export default function Page(props: GroupsMembersAdminViewProps) {
return <GroupsMembersAdminView {...props} />;
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import {
AdministratorsStaffAdminView,
AdministratorsStaffAdminViewProps,
generateMetadataAdministratorsStaffAdminView,
} from 'vitnode-frontend/admin/members/staff/administrators/administrators-view';

export const generateMetadata = generateMetadataAdministratorsStaffAdminView;

export default function Page(props: AdministratorsStaffAdminViewProps) {
return <AdministratorsStaffAdminView {...props} />;
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import {
ModeratorsStaffAdminView,
ModeratorsStaffAdminViewProps,
generateMetadataModeratorsStaffAdminView,
} from 'vitnode-frontend/admin/members/staff/moderators/moderators-view';

export const generateMetadata = generateMetadataModeratorsStaffAdminView;

export default function Page(props: ModeratorsStaffAdminViewProps) {
return <ModeratorsStaffAdminView {...props} />;
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import {
UsersMembersAdminView,
UsersMembersAdminViewProps,
generateMetadataUsersMembersAdminView,
} from 'vitnode-frontend/admin/members/users/users-members-admin-view';

export const generateMetadata = generateMetadataUsersMembersAdminView;

export default function Page(props: UsersMembersAdminViewProps) {
return <UsersMembersAdminView {...props} />;
}
24 changes: 5 additions & 19 deletions apps/frontend/app/[locale]/(admin)/admin/(auth)/layout.tsx
Original file line number Diff line number Diff line change
@@ -1,25 +1,11 @@
import React from 'react';
import { getTranslations } from 'next-intl/server';
import { Metadata } from 'next';
import { getGlobalData } from 'vitnode-frontend/graphql/get-global-data';
import { AdminLayout } from 'vitnode-frontend/views/admin/layout/admin-layout';
import {
AdminLayout,
generateMetadataAdminLayout,
} from 'vitnode-frontend/views/admin/layout/admin-layout';
import { AuthAdminLayout } from 'vitnode-frontend/views/admin/layout/auth/auth-admin-layout';

export async function generateMetadata(): Promise<Metadata> {
const [data, t] = await Promise.all([
getGlobalData(),
getTranslations('admin'),
]);

const defaultTitle = `${t('title_short')} - ${data.core_settings__show.site_short_name}`;

return {
title: {
default: defaultTitle,
template: `%s - ${defaultTitle}`,
},
};
}
export const generateMetadata = generateMetadataAdminLayout;

export default function Layout({ children }: { children: React.ReactNode }) {
return (
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import {
generateMetadataInstallConfigs,
InstallConfigsView,
} from 'vitnode-frontend/admin/install/install-configs-view';

export const generateMetadata = generateMetadataInstallConfigs;

export default function Page() {
return <InstallConfigsView />;
}
5 changes: 0 additions & 5 deletions apps/frontend/app/[locale]/(admin)/admin/install/page.tsx

This file was deleted.

7 changes: 6 additions & 1 deletion apps/frontend/app/[locale]/(main)/(vitnode)/login/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import React from 'react';
import { SignInView } from 'vitnode-frontend/views/theme/views/auth/sign/in/sign-in-view';
import {
SignInView,
generateMetadataSignIn,
} from 'vitnode-frontend/views/theme/views/auth/sign/in/sign-in-view';

export const generateMetadata = generateMetadataSignIn;

export default async function Page() {
return <SignInView />;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import React from 'react';
import { SignUpView } from 'vitnode-frontend/views/theme/views/auth/sign/up/sign-up-view';
import {
SignUpView,
generateMetadataSignUp,
} from 'vitnode-frontend/views/theme/views/auth/sign/up/sign-up-view';

export const generateMetadata = generateMetadataSignUp;

export default async function Page() {
return <SignUpView />;
Expand Down
19 changes: 18 additions & 1 deletion packages/frontend/src/views/admin/layout/admin-layout.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
import { Metadata } from 'next';
import { getTranslations } from 'next-intl/server';

import { AdminProviders } from './providers';
import { getSessionAdminData } from '@/graphql/get-session-admin';
import { getGlobalData } from '@/graphql/get-global-data';

export const generateMetadataAdminLayout = async (): Promise<Metadata> => {
const [data, t] = await Promise.all([
getGlobalData(),
getTranslations('admin'),
]);

import { getSessionAdminData } from '../../../graphql/get-session-admin';
return {
title: {
default: t('title_short'),
template: `%s - ${t('title_short')} - ${data.core_settings__show.site_short_name}`,
},
};
};

export const AdminLayout = async ({
children,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { getTranslations } from 'next-intl/server';
import { Metadata } from 'next';

import { ContentFilesAdvancedCoreAdminView } from './content';
import {
Expand Down Expand Up @@ -31,6 +32,15 @@ export interface FilesAdvancedCoreAdminViewProps {
searchParams: SearchParamsPagination;
}

export const generateMetadataFilesAdvancedCoreAdminView =
async (): Promise<Metadata> => {
const t = await getTranslations('admin.core.advanced.files');

return {
title: t('title'),
};
};

export const FilesAdvancedCoreAdminView = async ({
searchParams,
}: FilesAdvancedCoreAdminViewProps) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { getTranslations } from 'next-intl/server';
import { Metadata } from 'next';

import { ActionsLangsAdmin } from './actions/actions';
import { ContentLangsCoreAdminView } from './content';
Expand Down Expand Up @@ -39,6 +40,14 @@ export interface LangsCoreAdminViewProps {
searchParams: SearchParamsPagination;
}

export const generateMetadataLangsCoreAdmin = async (): Promise<Metadata> => {
const t = await getTranslations('admin.core.langs');

return {
title: t('title'),
};
};

export const LangsCoreAdminView = async ({
searchParams,
}: LangsCoreAdminViewProps) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { getTranslations } from 'next-intl/server';
import { Metadata } from 'next';

import { ActionsPluginsAdmin } from './actions/actions';
import { ContentPluginsCoreAdminView } from './content';
Expand Down Expand Up @@ -35,6 +36,14 @@ const getData = async (variables: Admin__Core_Plugins__ShowQueryVariables) => {
return data;
};

export const generateMetadataPluginsAdmin = async (): Promise<Metadata> => {
const t = await getTranslations('admin.core.plugins');

return {
title: t('title'),
};
};

export const PluginsAdminView = async ({
searchParams,
}: PluginsAdminViewProps) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export async function generateMetadataDevPluginAdminLayout({
const data = await getPluginDataAdmin({ code });
if (!data || data.admin__core_plugins__show.edges.length === 0) return {};

const defaultTitle = `${data.admin__core_plugins__show.edges[0].name} - ${tCore('nav.plugins')} - ${t('title_short')} - ${config.core_settings__show.site_name}`;
const defaultTitle = `${data.admin__core_plugins__show.edges[0].name} - ${tCore('nav.plugins')} - ${t('title_short')} - ${config.core_settings__show.site_short_name}`;

return {
title: {
Expand Down
Loading

0 comments on commit 1abc5e1

Please sign in to comment.