generated from tailored/app-template
Initial commit
This commit is contained in:
12
src/app.ts
Normal file
12
src/app.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import type { Page } from '@kevisual/store/page';
|
||||
import type { QueryRouterServer } from '@kevisual/router';
|
||||
import { basename } from './modules/basename';
|
||||
export const page = useContextKey('page', () => {
|
||||
return new window.Page({
|
||||
basename,
|
||||
}) as unknown as Page;
|
||||
});
|
||||
export const app = useContextKey('app', () => {
|
||||
console.error('app not found');
|
||||
return null as unknown as QueryRouterServer;
|
||||
});
|
||||
16
src/assets/index.css
Normal file
16
src/assets/index.css
Normal file
@@ -0,0 +1,16 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
@layer components {
|
||||
.test-loading {
|
||||
@apply w-20 h-20 bg-gray-300 rounded-full animate-spin;
|
||||
}
|
||||
}
|
||||
|
||||
#ai-bot-root {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: -100px;
|
||||
z-index: 9999;
|
||||
}
|
||||
48
src/main.ts
Normal file
48
src/main.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
import { page, app } from './app.ts';
|
||||
import { basename } from './modules/basename.ts';
|
||||
export const render = ({ renderRoot }) => {
|
||||
renderRoot.innerHTML = `
|
||||
<h1>Hello, World!</h1>
|
||||
`;
|
||||
};
|
||||
console.log('basename', basename, page, app);
|
||||
|
||||
if (page) {
|
||||
page.addPage('/app-template', 'home');
|
||||
page.subscribe('home', () => {
|
||||
render({
|
||||
renderRoot: document.getElementById('ai-root'),
|
||||
});
|
||||
});
|
||||
page.addPage('', 'index');
|
||||
page.subscribe('index', () => {
|
||||
const root = document.getElementById('ai-root') as HTMLElement;
|
||||
root.innerHTML = `
|
||||
<h1>Hello, World!</h1>
|
||||
`;
|
||||
});
|
||||
}
|
||||
|
||||
if (app) {
|
||||
app
|
||||
.route({
|
||||
path: 'app-template',
|
||||
key: 'render',
|
||||
})
|
||||
.define(async (ctx) => {
|
||||
let { renderRoot } = ctx.query;
|
||||
if (!renderRoot) {
|
||||
ctx.throw(404, 'renderRoot is required');
|
||||
}
|
||||
if (typeof renderRoot === 'string') {
|
||||
renderRoot = document.querySelector(renderRoot);
|
||||
}
|
||||
if (!renderRoot) {
|
||||
ctx.throw(404, 'renderRoot not found');
|
||||
}
|
||||
render({
|
||||
renderRoot,
|
||||
});
|
||||
})
|
||||
.addTo(app);
|
||||
}
|
||||
2
src/modules/basename.ts
Normal file
2
src/modules/basename.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
// @ts-ignore
|
||||
export const basename = DEV_SERVER ? '/' : BASE_NAME;
|
||||
3
src/modules/message.ts
Normal file
3
src/modules/message.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import { message } from '@kevisual/system-ui/dist/message';
|
||||
|
||||
export { message };
|
||||
3
src/modules/query.ts
Normal file
3
src/modules/query.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import { QueryClient } from '@kevisual/query';
|
||||
|
||||
export const query = new QueryClient();
|
||||
Reference in New Issue
Block a user