forked from defunkt/forge
HMR support
This commit is contained in:
parent
e30f8c8a68
commit
1e013287cf
|
|
@ -10,6 +10,8 @@ let registeredThemeKeys: Set<string> = new Set()
|
|||
// Clear all registered styles
|
||||
export function clearStyles() {
|
||||
for (const key in styles) delete styles[key]
|
||||
for (const key in themes) delete themes[key]
|
||||
registeredThemeKeys.clear()
|
||||
}
|
||||
|
||||
// Register a theme with CSS custom properties
|
||||
|
|
@ -286,7 +288,11 @@ export function define(nameOrDef: string | TagDef, defIfNamed?: TagDef) {
|
|||
const def = defIfNamed ?? nameOrDef as TagDef
|
||||
const name = defIfNamed ? (nameOrDef as string) : anonName(def)
|
||||
|
||||
if (styles[name]) throw `${name} is already defined! Must use unique names.`
|
||||
// Clear any existing styles for this component (supports HMR/hot reload)
|
||||
for (const key in styles) {
|
||||
if (key === name || key.startsWith(`${name}_`) || key.startsWith(`${name}.`) || key.startsWith(`${name}:`))
|
||||
delete styles[key]
|
||||
}
|
||||
registerStyles(name, def)
|
||||
|
||||
return (props: Record<string, any>) => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user