ci / verify (push) Canceled after 0s
Add customer and operator login, BLE provisioning, device fleet controls, call memory, memoir generation, and refreshed family and maintenance portals. Include API contracts, migrations, firmware sources, tests, assets, and deployment documentation.
15 lines
960 B
TypeScript
15 lines
960 B
TypeScript
import { useState } from 'react';
|
|
import { createRoot } from 'react-dom/client';
|
|
import { ConfigProvider } from 'antd';
|
|
import zhCN from 'antd/locale/zh_CN';
|
|
import { VikingMemoryWorkspace } from '../../src/pages/VikingMemoryWorkspace';
|
|
import '../../src/styles.css';
|
|
import '../../src/cal-theme.css';
|
|
import '../../src/customer-responsive.css';
|
|
import '../../src/components/home/customer-portal.css';
|
|
function Fixture() {
|
|
const [elder, setElder] = useState('elder-a');
|
|
return <ConfigProvider locale={zhCN} theme={{ token: { controlHeight: 40 } }}><main className="companion-portal" style={{ padding: 24, maxWidth: 1200, margin: 'auto' }}><h1>故事与记忆 · 合成长者</h1><button onClick={() => setElder(value => value === 'elder-a' ? 'elder-b' : 'elder-a')}>切换合成长者</button><VikingMemoryWorkspace elderID={elder} accessToken="synthetic-token" /></main></ConfigProvider>;
|
|
}
|
|
createRoot(document.getElementById('root')!).render(<Fixture />);
|