@navaramap/three-react 0.0.5 → 0.0.6

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/README.md CHANGED
@@ -50,28 +50,40 @@ export function Layers() {
50
50
  ]);
51
51
  }, [view]);
52
52
 
53
+ const baseTilesSource = useMemo(
54
+ () =>
55
+ view.addSource({
56
+ type: "raster-tile",
57
+ url: "…",
58
+ minZoom: 2,
59
+ maxZoom: 18,
60
+ }),
61
+ [view],
62
+ );
63
+ const demSource = useMemo(
64
+ () =>
65
+ view.addSource({
66
+ type: "raster-dem",
67
+ url: "…",
68
+ elevationDecoder: JAPAN_GSI_ELEVATION_DECODER(),
69
+ minZoom: 6,
70
+ maxZoom: 15,
71
+ }),
72
+ [view],
73
+ );
74
+
53
75
  const baseTiles = useMemo<LayerDescription>(
54
- () => ({
55
- type: "tiles",
56
- data: { url: "…" },
57
- raster_tile: { min_zoom: 2, max_zoom: 18 },
58
- }),
59
- [],
76
+ () => ({ type: "raster", source: baseTilesSource }),
77
+ [baseTilesSource],
60
78
  );
61
79
 
62
80
  const terrain = useMemo<LayerDescription>(
63
81
  () => ({
64
82
  type: "terrain",
65
- data: { url: "…" },
66
- raster_terrain: {
67
- min_zoom: 6,
68
- max_zoom: 15,
69
- elevation_decoder: JAPAN_GSI_ELEVATION_DECODER(),
70
- cast_shadow: true,
71
- receive_shadow: true,
72
- },
83
+ source: demSource,
84
+ terrain: { castShadow: true, receiveShadow: true },
73
85
  }),
74
- [],
86
+ [demSource],
75
87
  );
76
88
 
77
89
  return (
package/dist/index.js CHANGED
@@ -64,10 +64,7 @@ function p({ config: e, onReady: t }) {
64
64
  t?.(), e.delete(), r.current = null;
65
65
  };
66
66
  }, [n]), i(() => {
67
- if (r.current) if ("data" in e) {
68
- let { data: t, ...n } = e;
69
- r.current.update(n);
70
- } else r.current.update(e);
67
+ r.current && r.current.update(e);
71
68
  }, [e]), null;
72
69
  }
73
70
  function m(e, t, n, r) {
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@navaramap/three"),require("react")):typeof define==`function`&&define.amd?define([`exports`,`@navaramap/three`,`react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.NavaraThreeReact={},e._navaramap_three,e.react))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var r=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var s=o(t),l=0,u=s.length,d;l<u;l++)d=s[l],!c.call(e,d)&&d!==n&&i(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=a(t,d))||r.enumerable});return e};t=((e,t,n)=>(n=e==null?{}:r(s(e)),u(t||!e||!e.__esModule?i(n,`default`,{value:e,enumerable:!0}):n,e)))(t,1);var d=l((e=>{var t=Symbol.for(`react.transitional.element`);function n(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.jsx=n})),f=l(((e,t)=>{t.exports=d()}))(),p=(0,n.createContext)(void 0),m=()=>{let e=(0,n.useContext)(p);if(!e)throw Error(`Navara React Error: You have to invoke this hook inside of ViewProvider.`);return e},h=({canvas:e,children:r,plugins:i,...a})=>{let[o,s]=(0,n.useState)(),[c,l]=(0,n.useState)(!1),u=(0,n.useRef)(void 0);return(0,n.useEffect)(()=>{if(u.current){console.warn(`You need to recreate ThreeView.`);return}let n=new t.default({canvas:e&&`current`in e?e.current:e,...a});if(i)for(let e of i)n.addPlugin(e);return s(n),u.current=n,(async()=>{try{await n.init(),l(!0)}catch(e){console.error(`Navara init failed:`,e)}})(),()=>{}},[e,a,i]),(0,f.jsx)(p.Provider,{value:{view:o},children:c?r:null})};function g({config:e,onReady:t}){let{view:r}=m(),i=(0,n.useRef)(null),a=(0,n.useRef)(e),o=(0,n.useRef)(t);return(0,n.useEffect)(()=>{a.current=e,o.current=t},[e,t]),(0,n.useEffect)(()=>{let e=r.addLayer(a.current);i.current=e;let t=o.current?.(e);return()=>{t?.(),e.delete(),i.current=null}},[r]),(0,n.useEffect)(()=>{if(i.current)if(`data`in e){let{data:t,...n}=e;i.current.update(n)}else i.current.update(e)},[e]),null}function _(e,t,r,i){let a=(0,n.useRef)(null),o=(0,n.useRef)(e),s=(0,n.useRef)(r),c=(0,n.useRef)(i);(0,n.useEffect)(()=>{o.current=e,s.current=r,c.current=i},[e,r,i]),(0,n.useEffect)(()=>{let e=o.current(s.current);a.current=e;let t=c.current?.(e);return()=>{t?.(),e.delete(),a.current=null}},[t]),(0,n.useEffect)(()=>{a.current&&a.current.update(r)},[r])}function v({config:e,onReady:t}){let{view:r}=m();return _((0,n.useCallback)(e=>r.addMesh(e),[r]),r,e,t),null}function y({config:e,onReady:t}){let{view:r}=m();return _((0,n.useCallback)(e=>r.addLight(e),[r]),r,e,t),null}function b({config:e,onReady:t}){let{view:r}=m();return _((0,n.useCallback)(e=>r.addEffect(e),[r]),r,e,t),null}e.EffectDesc=b,e.Layer=g,e.LightDesc=y,e.MeshDesc=v,e.ViewProvider=h,e.useViewContext=m});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@navaramap/three"),require("react")):typeof define==`function`&&define.amd?define([`exports`,`@navaramap/three`,`react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.NavaraThreeReact={},e._navaramap_three,e.react))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var r=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var s=o(t),l=0,u=s.length,d;l<u;l++)d=s[l],!c.call(e,d)&&d!==n&&i(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=a(t,d))||r.enumerable});return e};t=((e,t,n)=>(n=e==null?{}:r(s(e)),u(t||!e||!e.__esModule?i(n,`default`,{value:e,enumerable:!0}):n,e)))(t,1);var d=l((e=>{var t=Symbol.for(`react.transitional.element`);function n(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.jsx=n})),f=l(((e,t)=>{t.exports=d()}))(),p=(0,n.createContext)(void 0),m=()=>{let e=(0,n.useContext)(p);if(!e)throw Error(`Navara React Error: You have to invoke this hook inside of ViewProvider.`);return e},h=({canvas:e,children:r,plugins:i,...a})=>{let[o,s]=(0,n.useState)(),[c,l]=(0,n.useState)(!1),u=(0,n.useRef)(void 0);return(0,n.useEffect)(()=>{if(u.current){console.warn(`You need to recreate ThreeView.`);return}let n=new t.default({canvas:e&&`current`in e?e.current:e,...a});if(i)for(let e of i)n.addPlugin(e);return s(n),u.current=n,(async()=>{try{await n.init(),l(!0)}catch(e){console.error(`Navara init failed:`,e)}})(),()=>{}},[e,a,i]),(0,f.jsx)(p.Provider,{value:{view:o},children:c?r:null})};function g({config:e,onReady:t}){let{view:r}=m(),i=(0,n.useRef)(null),a=(0,n.useRef)(e),o=(0,n.useRef)(t);return(0,n.useEffect)(()=>{a.current=e,o.current=t},[e,t]),(0,n.useEffect)(()=>{let e=r.addLayer(a.current);i.current=e;let t=o.current?.(e);return()=>{t?.(),e.delete(),i.current=null}},[r]),(0,n.useEffect)(()=>{i.current&&i.current.update(e)},[e]),null}function _(e,t,r,i){let a=(0,n.useRef)(null),o=(0,n.useRef)(e),s=(0,n.useRef)(r),c=(0,n.useRef)(i);(0,n.useEffect)(()=>{o.current=e,s.current=r,c.current=i},[e,r,i]),(0,n.useEffect)(()=>{let e=o.current(s.current);a.current=e;let t=c.current?.(e);return()=>{t?.(),e.delete(),a.current=null}},[t]),(0,n.useEffect)(()=>{a.current&&a.current.update(r)},[r])}function v({config:e,onReady:t}){let{view:r}=m();return _((0,n.useCallback)(e=>r.addMesh(e),[r]),r,e,t),null}function y({config:e,onReady:t}){let{view:r}=m();return _((0,n.useCallback)(e=>r.addLight(e),[r]),r,e,t),null}function b({config:e,onReady:t}){let{view:r}=m();return _((0,n.useCallback)(e=>r.addEffect(e),[r]),r,e,t),null}e.EffectDesc=b,e.Layer=g,e.LightDesc=y,e.MeshDesc=v,e.ViewProvider=h,e.useViewContext=m});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@navaramap/three-react",
3
3
  "type": "module",
4
- "version": "0.0.5",
4
+ "version": "0.0.6",
5
5
  "main": "dist/index.umd.cjs",
6
6
  "module": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -21,14 +21,14 @@
21
21
  "peerDependencies": {
22
22
  "react": ">=19",
23
23
  "three": ">=0.183.0",
24
- "@navaramap/three": "0.0.5"
24
+ "@navaramap/three": "0.0.6"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/react": "19.2.17",
28
28
  "@types/react-dom": "19.2.3",
29
29
  "@types/three": "0.185.1",
30
30
  "three": "0.185.1",
31
- "@navaramap/three": "0.0.5"
31
+ "@navaramap/three": "0.0.6"
32
32
  },
33
33
  "scripts": {
34
34
  "type-check": "tsc && tsc -p tsconfig.node.json",
package/src/Layer.tsx CHANGED
@@ -49,12 +49,7 @@ export function Layer({ config, onReady }: PropsWithChildren<LayerProps>) {
49
49
 
50
50
  useEffect(() => {
51
51
  if (handleRef.current) {
52
- if ("data" in config) {
53
- const { data: _data, ...withoutData } = config;
54
- handleRef.current.update(withoutData);
55
- } else {
56
- handleRef.current.update(config);
57
- }
52
+ handleRef.current.update(config);
58
53
  }
59
54
  }, [config]);
60
55