Browse Source

fixed load css of not compiled components

Nicolas Cannasse 7 months ago
parent
commit
184b0e70d2
1 changed files with 15 additions and 5 deletions
  1. 15 5
      hrt/impl/DomkitViewer.hx

+ 15 - 5
hrt/impl/DomkitViewer.hx

@@ -205,18 +205,24 @@ class DomkitViewer extends h2d.Object {
 	var loadedComponents : Array<domkit.Component<h2d.Object, h2d.Object>> = [];
 	var compHooks : Map<String,Array<Dynamic> -> h2d.Object -> h2d.Object> = [];
 	var definedClasses : Array<String> = [];
-	var loadedResources : Array<hxd.res.Resource>;
+	var loadedResources : Array<{ r : hxd.res.Resource, wasLoaded : Bool }> = [];
 
 	public function new( style : DomkitStyle, res : hxd.res.Resource, ?parent ) {
 		super(parent);
 		this.style = style;
 		this.resource = res;
-		loadedResources = [res];
-		res.watch(rebuild);
+		loadComponents(res);
 		addContext(new DomkitBaseContext());
 		rebuildDelay();
 	}
 
+	function loadComponents( res : hxd.res.Resource ) {
+		var loaded = @:privateAccess style.resources.indexOf(res) >= 0;
+		loadedResources.push({ r : res, wasLoaded: loaded });
+		if( !loaded ) style.load(res);
+		res.watch(rebuild);
+	}
+
 	function rebuildDelay() {
 		if( rebuilding ) return;
 		rebuilding = true;
@@ -264,8 +270,12 @@ class DomkitViewer extends h2d.Object {
 		if( currentObj != null )
 			currentObj.remove();
 		// force re-watch
-		for( r in loadedResources )
-			style.load(r);
+		for( r in loadedResources ) {
+			if( r.wasLoaded )
+				style.load(r.r);
+			else
+				style.unload(r.r);
+		}
 		for( c in loadedComponents ) {
 			@:privateAccess domkit.Component.COMPONENTS.remove(c.name);
 			@:privateAccess domkit.CssStyle.CssData.COMPONENTS.remove(c);