diff --git a/packages/plugins/@samples/plugin-replace-page/.npmignore b/packages/plugins/@samples/plugin-replace-page/.npmignore new file mode 100755 index 000000000..8f5e1c4ce --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/.npmignore @@ -0,0 +1,2 @@ +/node_modules +/src diff --git a/packages/plugins/@samples/plugin-replace-page/README.md b/packages/plugins/@samples/plugin-replace-page/README.md new file mode 100755 index 000000000..386ba8967 --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/README.md @@ -0,0 +1 @@ +# @samples/plugin-replace-page diff --git a/packages/plugins/@samples/plugin-replace-page/client.d.ts b/packages/plugins/@samples/plugin-replace-page/client.d.ts new file mode 100755 index 000000000..6c459cbac --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/client.d.ts @@ -0,0 +1,2 @@ +export * from './dist/client'; +export { default } from './dist/client'; diff --git a/packages/plugins/@samples/plugin-replace-page/client.js b/packages/plugins/@samples/plugin-replace-page/client.js new file mode 100755 index 000000000..b6e3be70e --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/client.js @@ -0,0 +1 @@ +module.exports = require('./dist/client/index.js'); diff --git a/packages/plugins/@samples/plugin-replace-page/package.json b/packages/plugins/@samples/plugin-replace-page/package.json new file mode 100755 index 000000000..5686063b6 --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/package.json @@ -0,0 +1,15 @@ +{ + "name": "@samples/plugin-replace-page", + "version": "0.21.61", + "main": "dist/server/index.js", + "dependencies": { + "antd": "^5.18.3", + "react-router-dom": "^6.11.2" + }, + "peerDependencies": { + "@tachybase/client": "workspace:*", + "@tachybase/plugin-auth": "workspace:*", + "@tachybase/server": "workspace:*", + "@tachybase/test": "workspace:*" + } +} diff --git a/packages/plugins/@samples/plugin-replace-page/server.d.ts b/packages/plugins/@samples/plugin-replace-page/server.d.ts new file mode 100755 index 000000000..c41081ddc --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/server.d.ts @@ -0,0 +1,2 @@ +export * from './dist/server'; +export { default } from './dist/server'; diff --git a/packages/plugins/@samples/plugin-replace-page/server.js b/packages/plugins/@samples/plugin-replace-page/server.js new file mode 100755 index 000000000..972842039 --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/server.js @@ -0,0 +1 @@ +module.exports = require('./dist/server/index.js'); diff --git a/packages/plugins/@samples/plugin-replace-page/src/client/AuthLayout.tsx b/packages/plugins/@samples/plugin-replace-page/src/client/AuthLayout.tsx new file mode 100755 index 000000000..0af540e67 --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/src/client/AuthLayout.tsx @@ -0,0 +1,65 @@ +import React from 'react'; +import { css, PoweredBy, useAPIClient, useRequest, useSystemSettings } from '@tachybase/client'; +import { AuthenticatorsContext } from '@tachybase/plugin-auth/client'; + +import { Col, Row } from 'antd'; +import { Outlet } from 'react-router-dom'; + +import authImg from './image.png'; + +export function CustomAuthLayout() { + const { data } = useSystemSettings(); + const api = useAPIClient(); + const { data: authenticators = [], error } = useRequest(() => + api + .resource('authenticators') + .publicList() + .then((res) => { + return res?.data?.data || []; + }), + ); + + return ( + + + + + +
+

{data?.data?.title}

+ + + +
+ +
+
+ +
+ ); +} diff --git a/packages/plugins/@samples/plugin-replace-page/src/client/image.png b/packages/plugins/@samples/plugin-replace-page/src/client/image.png new file mode 100755 index 000000000..7f3402661 Binary files /dev/null and b/packages/plugins/@samples/plugin-replace-page/src/client/image.png differ diff --git a/packages/plugins/@samples/plugin-replace-page/src/client/index.tsx b/packages/plugins/@samples/plugin-replace-page/src/client/index.tsx new file mode 100755 index 000000000..8d21a724b --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/src/client/index.tsx @@ -0,0 +1,13 @@ +import { Plugin } from '@tachybase/client'; + +import { CustomAuthLayout } from './AuthLayout'; + +export class PluginReplacePageClient extends Plugin { + async load() { + this.app.router.add('auth', { + Component: CustomAuthLayout, + }); + } +} + +export default PluginReplacePageClient; diff --git a/packages/plugins/@samples/plugin-replace-page/src/index.ts b/packages/plugins/@samples/plugin-replace-page/src/index.ts new file mode 100755 index 000000000..7e74612df --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/src/index.ts @@ -0,0 +1,2 @@ +export * from './server'; +export { default } from './server'; diff --git a/packages/plugins/@samples/plugin-replace-page/src/server/collections/.gitkeep b/packages/plugins/@samples/plugin-replace-page/src/server/collections/.gitkeep new file mode 100755 index 000000000..e69de29bb diff --git a/packages/plugins/@samples/plugin-replace-page/src/server/index.ts b/packages/plugins/@samples/plugin-replace-page/src/server/index.ts new file mode 100755 index 000000000..b68aea57f --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/src/server/index.ts @@ -0,0 +1 @@ +export { default } from './plugin'; diff --git a/packages/plugins/@samples/plugin-replace-page/src/server/plugin.ts b/packages/plugins/@samples/plugin-replace-page/src/server/plugin.ts new file mode 100755 index 000000000..97c5b161b --- /dev/null +++ b/packages/plugins/@samples/plugin-replace-page/src/server/plugin.ts @@ -0,0 +1,28 @@ +import { Plugin } from '@tachybase/server'; + +export class PluginReplacePageServer extends Plugin { + async afterAdd() {} + + async beforeLoad() {} + + async load() { + this.app.db.collection({ + name: 'posts', + // 字段类型参考 packages/core/database/src/fields,常见的有 string、text、integer 等 + fields: [{ type: 'string', name: 'title' }], + }); + await this.app.db.sync(); + // 方便做测试,权限设置为公开 + this.app.acl.allow('posts', '*', 'public'); + } + + async install() {} + + async afterEnable() {} + + async afterDisable() {} + + async remove() {} +} + +export default PluginReplacePageServer; diff --git a/packages/plugins/@tachybase/plugin-todo-page.rar b/packages/plugins/@tachybase/plugin-todo-page.rar new file mode 100644 index 000000000..a23fd2830 Binary files /dev/null and b/packages/plugins/@tachybase/plugin-todo-page.rar differ