feat: powered by
This commit is contained in:
parent
6b1ff526eb
commit
a6b6f840e3
@ -14,6 +14,7 @@ export * from './document-title';
|
|||||||
export * from './i18n';
|
export * from './i18n';
|
||||||
export * from './icon';
|
export * from './icon';
|
||||||
export * from './plugin-manager';
|
export * from './plugin-manager';
|
||||||
|
export * from './powered-by';
|
||||||
export * from './record-provider';
|
export * from './record-provider';
|
||||||
export * from './route-switch';
|
export * from './route-switch';
|
||||||
export * from './schema-component';
|
export * from './schema-component';
|
||||||
@ -25,3 +26,4 @@ export * from './slate';
|
|||||||
export * from './system-settings';
|
export * from './system-settings';
|
||||||
export * from './user';
|
export * from './user';
|
||||||
export * from './workflow';
|
export * from './workflow';
|
||||||
|
|
||||||
|
27
packages/client/src/powered-by/index.tsx
Normal file
27
packages/client/src/powered-by/index.tsx
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import { css } from '@emotion/css';
|
||||||
|
import React from 'react';
|
||||||
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
|
export const PoweredBy = () => {
|
||||||
|
const { i18n } = useTranslation();
|
||||||
|
const urls = {
|
||||||
|
'en-US': 'https://www.nocobase.com',
|
||||||
|
'zh-CN': 'https://cn.nocobase.com',
|
||||||
|
};
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
className={css`
|
||||||
|
text-align: center;
|
||||||
|
color: rgba(0, 0, 0, 0.45);
|
||||||
|
a {
|
||||||
|
color: rgba(0, 0, 0, 0.45);
|
||||||
|
&:hover {
|
||||||
|
color: rgba(0,0,0,.85);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`}
|
||||||
|
>
|
||||||
|
Powered by <a href={urls[i18n.language] || urls['en-US']}>NocoBase</a>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
@ -15,6 +15,7 @@ import {
|
|||||||
useRoute,
|
useRoute,
|
||||||
useSystemSettings
|
useSystemSettings
|
||||||
} from '../../../';
|
} from '../../../';
|
||||||
|
import { PoweredBy } from '../../../powered-by';
|
||||||
|
|
||||||
const InternalAdminLayout = (props: any) => {
|
const InternalAdminLayout = (props: any) => {
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
@ -111,7 +112,24 @@ const InternalAdminLayout = (props: any) => {
|
|||||||
</Layout.Header>
|
</Layout.Header>
|
||||||
<Layout>
|
<Layout>
|
||||||
<Layout.Sider style={{ display: 'none' }} theme={'light'} ref={sideMenuRef}></Layout.Sider>
|
<Layout.Sider style={{ display: 'none' }} theme={'light'} ref={sideMenuRef}></Layout.Sider>
|
||||||
<Layout.Content style={{ minHeight: 'calc(100vh - 46px)' }}>{props.children}</Layout.Content>
|
<Layout.Content
|
||||||
|
className={css`
|
||||||
|
min-height: calc(100vh - 46px);
|
||||||
|
position: relative;
|
||||||
|
padding-bottom: 70px;
|
||||||
|
.ant-layout-footer {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
`}
|
||||||
|
>
|
||||||
|
{props.children}
|
||||||
|
<Layout.Footer>
|
||||||
|
<PoweredBy />
|
||||||
|
</Layout.Footer>
|
||||||
|
</Layout.Content>
|
||||||
</Layout>
|
</Layout>
|
||||||
</Layout>
|
</Layout>
|
||||||
);
|
);
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
|
import { css } from '@emotion/css';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
import { PoweredBy } from '../../../powered-by';
|
||||||
|
|
||||||
export function AuthLayout(props: any) {
|
export function AuthLayout(props: any) {
|
||||||
return (
|
return (
|
||||||
@ -11,6 +13,17 @@ export function AuthLayout(props: any) {
|
|||||||
>
|
>
|
||||||
<h1>NocoBase</h1>
|
<h1>NocoBase</h1>
|
||||||
{props.children}
|
{props.children}
|
||||||
|
<div
|
||||||
|
className={css`
|
||||||
|
position: absolute;
|
||||||
|
bottom: 24px;
|
||||||
|
width: 100%;
|
||||||
|
left: 0;
|
||||||
|
text-align: center;
|
||||||
|
`}
|
||||||
|
>
|
||||||
|
<PoweredBy />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user