refactor(infra): directory structure (#4615)

This commit is contained in:
Joooye_34
2023-10-18 23:30:08 +08:00
committed by GitHub
parent 814d552be8
commit bed9310519
1150 changed files with 539 additions and 584 deletions

View File

@@ -0,0 +1,26 @@
{
"name": "@affine/hello-world-plugin",
"type": "module",
"private": true,
"description": "Hello world plugin",
"version": "0.10.0-canary.1",
"scripts": {
"dev": "af dev",
"build": "af build"
},
"affinePlugin": {
"release": false,
"entry": {
"core": "./src/index.ts"
}
},
"dependencies": {
"@affine/component": "workspace:*",
"@affine/sdk": "workspace:*",
"@blocksuite/icons": "2.1.34",
"@toeverything/components": "^0.0.45"
},
"devDependencies": {
"@affine/plugin-cli": "workspace:*"
}
}

View File

@@ -0,0 +1,26 @@
{
"name": "@affine/hello-world-plugin",
"$schema": "../../../node_modules/nx/schemas/project-schema.json",
"namedInputs": {
"default": [
"{projectRoot}/**/*",
"{workspaceRoot}/tools/plugin-cli/src/**/*",
"sharedGlobals"
]
},
"targets": {
"build": {
"executor": "nx:run-script",
"options": {
"script": "build"
},
"dependsOn": ["^build"],
"inputs": ["default"],
"outputs": [
"{workspaceRoot}/packages/frontend/core/public/plugins/hello-world",
"{workspaceRoot}/packages/frontend/electron/dist/plugins/hello-world"
]
}
},
"tags": ["plugin"]
}

View File

@@ -0,0 +1,18 @@
import { Logo1Icon } from '@blocksuite/icons';
import { IconButton } from '@toeverything/components/button';
import { Tooltip } from '@toeverything/components/tooltip';
import { useCallback } from 'react';
export const HeaderItem = () => {
return (
<Tooltip content="Plugin Enabled">
<IconButton
onClick={useCallback(() => {
console.log('clicked hello world!');
}, [])}
>
<Logo1Icon />
</IconButton>
</Tooltip>
);
};

View File

@@ -0,0 +1,32 @@
import type { PluginContext } from '@affine/sdk/entry';
import { createElement } from 'react';
import { lazy } from 'react';
import { createRoot } from 'react-dom/client';
const HeaderItem = lazy(() =>
import('./app').then(({ HeaderItem }) => ({ default: HeaderItem }))
);
export const entry = (context: PluginContext) => {
console.log('register');
console.log('hello, world!');
context.register('headerItem', div => {
const root = createRoot(div);
root.render(createElement(HeaderItem));
return () => {
root.unmount();
};
});
context.register('formatBar', div => {
const root = createRoot(div);
root.render(createElement(HeaderItem));
return () => {
root.unmount();
};
});
return () => {
console.log('unregister');
};
};

View File

@@ -0,0 +1,17 @@
{
"extends": "../../../tsconfig.json",
"include": ["./src"],
"compilerOptions": {
"noEmit": false,
"outDir": "lib",
"jsx": "preserve"
},
"references": [
{
"path": "../../common/sdk"
},
{
"path": "../../frontend/component"
}
]
}