feat(docs): add demo

This commit is contained in:
chenos 2021-10-29 09:29:16 +08:00
parent eee96a4e4a
commit 51e83c1476
2 changed files with 79 additions and 0 deletions

7
docs/develop.md Normal file
View File

@ -0,0 +1,7 @@
---
sidemenu: false
order: 1000
hide: true
---
<code src="./examples/demos/demo1.tsx"/>

View File

@ -0,0 +1,72 @@
import { useRequest } from 'ahooks';
import { Spin } from 'antd';
import React, { useMemo } from 'react';
import { MemoryRouter as Router } from 'react-router-dom';
import {
createRouteSwitch,
RouteRedirectProps,
AdminLayout,
AuthLayout,
RouteSchemaRenderer,
ConfigProvider,
ClientSDK,
} from '@nocobase/client';
import { UseRequestProvider } from 'ahooks';
import { extend } from 'umi-request';
const request = extend({
prefix: process.env.API_URL,
timeout: 30000,
});
request.use(async (ctx, next) => {
const { headers } = ctx.req.options as any;
const token = localStorage.getItem('NOCOBASE_TOKEN');
if (token) {
headers['Authorization'] = `Bearer ${token}`;
headers['X-Hostname'] = process.env.API_HOSTNAME;
}
await next();
});
const client = new ClientSDK({
request,
});
console.log('process.env.API_URL', process.env.API_URL);
// console.log = () => {}
const RouteSwitch = createRouteSwitch({
components: {
AdminLayout,
AuthLayout,
RouteSchemaRenderer,
},
});
const App = () => {
const { data, loading } = useRequest('routes:getAccessible', {
formatResult: (result) => result?.data,
});
if (loading) {
return <Spin size={'large'} className={'nb-spin-center'} />;
}
return (
<div>
<Router initialEntries={['/admin']}>
<RouteSwitch routes={data} />
</Router>
</div>
);
};
export default () => {
return (
<ConfigProvider client={client}>
<App />
</ConfigProvider>
);
};