Files
svg-sprites/integration/apps/preact-vite/src/main.js

46 lines
1.2 KiB
JavaScript

import { h, render } from 'preact'
import '@gromlab/svg-sprites/viewer/element'
import { AppIcon } from './app-icons/index.js'
import { RemoteAppIcon } from './remote-app-icons/index.js'
import './style.css'
const viewerSources = [
() => import('./app-icons/.svg-sprite/svg-sprite.manifest.js'),
() => import('./remote-app-icons/.svg-sprite/svg-sprite.manifest.js'),
]
function App() {
const connectViewer = (viewer) => {
if (viewer) viewer.sources = viewerSources
}
return h('main', null,
h('h1', null, 'Preact + Vite'),
h(AppIcon, {
'data-testid': 'icon',
'data-app': 'preact-vite',
icon: 'check',
'aria-label': 'Check icon',
width: 64,
height: 64,
style: { '--icon-color-1': '#16a34a' },
}),
h(RemoteAppIcon, {
'data-testid': 'remote-icon',
'data-app': 'preact-vite-remote',
icon: 'check',
'aria-label': 'Remote check icon',
width: 64,
height: 64,
style: { '--icon-color-1': '#16a34a' },
}),
h('gromlab-sprite-viewer', {
ref: connectViewer,
'viewer-title': 'Preact Vite Viewer',
}),
)
}
render(h(App), document.getElementById('root'))