@reearth/core 0.0.7-alpha.55 → 0.0.7-alpha.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reearth/core",
3
- "version": "0.0.7-alpha.55",
3
+ "version": "0.0.7-alpha.56",
4
4
  "author": "Re:Earth contributors <community@reearth.io>",
5
5
  "license": "Apache-2.0",
6
6
  "description": "A library that abstracts a map engine as one common API.",
@@ -153,11 +153,21 @@ export default function useHooks({
153
153
  [hiddenLayerIds, hiddenLayers],
154
154
  );
155
155
 
156
- const layersRef = useGet(layers);
156
+ const derivedLayers = useMemo(() => {
157
+ return layers?.map(l => {
158
+ const hidden = isHidden?.(l.id);
159
+ return {
160
+ ...l,
161
+ visible: hidden ? !hidden : l.visible,
162
+ };
163
+ });
164
+ }, [isHidden, layers]);
165
+
166
+ const layersRef = useGet(derivedLayers);
157
167
  const [tempLayers, setTempLayers] = useState<Layer[]>([]);
158
168
  const tempLayersRef = useRef<Layer[]>([]);
159
169
  const flattenedLayers = useMemo((): Layer[] => {
160
- const newLayers = [...flattenLayers(layers ?? []), ...flattenLayers(tempLayers)];
170
+ const newLayers = [...flattenLayers(derivedLayers ?? []), ...flattenLayers(tempLayers)];
161
171
  // apply overrides
162
172
  return newLayers.map(l => {
163
173
  const ol: any = overriddenLayers.find(ll => ll.id === l.id);
@@ -179,7 +189,7 @@ export default function useHooks({
179
189
 
180
190
  return res;
181
191
  });
182
- }, [tempLayers, layers, overriddenLayers]);
192
+ }, [derivedLayers, tempLayers, overriddenLayers]);
183
193
 
184
194
  const getComputedLayer = useAtomValue(
185
195
  useMemo(
@@ -623,7 +633,7 @@ export default function useHooks({
623
633
  useLayoutEffect(() => {
624
634
  const ids = new Set<string>();
625
635
 
626
- walkLayers(layers ?? [], l => {
636
+ walkLayers(derivedLayers ?? [], l => {
627
637
  ids.add(l.id);
628
638
  if (!atomMap.has(l.id)) {
629
639
  atomMap.set(l.id, computeAtom());
@@ -643,8 +653,8 @@ export default function useHooks({
643
653
  overriddenLayersRef.current = updated;
644
654
  setOverridenLayers(updated);
645
655
 
646
- prevLayers.current = layers;
647
- }, [atomMap, layers, layerMap, lazyLayerMap, setOverridenLayers, showLayer]);
656
+ prevLayers.current = derivedLayers;
657
+ }, [atomMap, layerMap, lazyLayerMap, setOverridenLayers, showLayer, derivedLayers]);
648
658
 
649
659
  useEffect(() => {
650
660
  if (!requestingRenderMode || requestingRenderMode.current === FORCE_REQUEST_RENDER) return;