@xrift/world-components 0.27.0 → 0.28.0
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/dist/components/Portal/components/PortalThumbnail/index.d.ts.map +1 -1
- package/dist/components/Portal/components/PortalThumbnail/index.js +21 -4
- package/dist/components/Portal/components/PortalThumbnail/index.js.map +1 -1
- package/dist/components/Portal/hooks.d.ts +1 -2
- package/dist/components/Portal/hooks.d.ts.map +1 -1
- package/dist/components/Portal/hooks.js +2 -3
- package/dist/components/Portal/hooks.js.map +1 -1
- package/dist/components/Portal/index.d.ts.map +1 -1
- package/dist/components/Portal/index.js +11 -3
- package/dist/components/Portal/index.js.map +1 -1
- package/dist/components/Portal/types.d.ts +1 -2
- package/dist/components/Portal/types.d.ts.map +1 -1
- package/dist/contexts/InstanceContext.d.ts +48 -0
- package/dist/contexts/InstanceContext.d.ts.map +1 -0
- package/dist/contexts/InstanceContext.js +55 -0
- package/dist/contexts/InstanceContext.js.map +1 -0
- package/dist/contexts/InstanceInfoContext.d.ts +39 -0
- package/dist/contexts/InstanceInfoContext.d.ts.map +1 -0
- package/dist/contexts/InstanceInfoContext.js +42 -0
- package/dist/contexts/InstanceInfoContext.js.map +1 -0
- package/dist/contexts/PortalContext.d.ts +39 -0
- package/dist/contexts/PortalContext.d.ts.map +1 -0
- package/dist/contexts/PortalContext.js +42 -0
- package/dist/contexts/PortalContext.js.map +1 -0
- package/dist/contexts/WorldContext.d.ts +46 -0
- package/dist/contexts/WorldContext.d.ts.map +1 -0
- package/dist/contexts/WorldContext.js +45 -0
- package/dist/contexts/WorldContext.js.map +1 -0
- package/dist/contexts/XRiftContext.d.ts +13 -1
- package/dist/contexts/XRiftContext.d.ts.map +1 -1
- package/dist/contexts/XRiftContext.js +8 -2
- package/dist/contexts/XRiftContext.js.map +1 -1
- package/dist/hooks/useInstance.d.ts +18 -0
- package/dist/hooks/useInstance.d.ts.map +1 -0
- package/dist/hooks/useInstance.js +54 -0
- package/dist/hooks/useInstance.js.map +1 -0
- package/dist/hooks/usePortalNavigation.d.ts +10 -0
- package/dist/hooks/usePortalNavigation.d.ts.map +1 -0
- package/dist/hooks/usePortalNavigation.js +46 -0
- package/dist/hooks/usePortalNavigation.js.map +1 -0
- package/dist/hooks/useWorld.d.ts +14 -0
- package/dist/hooks/useWorld.d.ts.map +1 -0
- package/dist/hooks/useWorld.js +31 -0
- package/dist/hooks/useWorld.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalThumbnail/index.tsx"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalThumbnail/index.tsx"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAmED,eAAO,MAAM,eAAe,GAAI,gCAAgC,KAAK,mDAuFpE,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useFrame } from '@react-three/fiber';
|
|
3
3
|
import { useEffect, useRef, useState } from 'react';
|
|
4
|
-
import { TextureLoader } from 'three';
|
|
4
|
+
import { DataTexture, TextureLoader } from 'three';
|
|
5
5
|
import { simplexNoise3D } from '../../shaders/noise';
|
|
6
6
|
const vertexShader = /* glsl */ `
|
|
7
7
|
varying vec2 vUv;
|
|
@@ -52,6 +52,13 @@ const fragmentShader = /* glsl */ `
|
|
|
52
52
|
gl_FragColor = vec4(color + uGlowColor * glowStrength * 0.3, alpha);
|
|
53
53
|
}
|
|
54
54
|
`;
|
|
55
|
+
/** サムネイルがない場合の黒プレースホルダー */
|
|
56
|
+
const createBlackTexture = () => {
|
|
57
|
+
const data = new Uint8Array([0, 0, 0, 255]);
|
|
58
|
+
const tex = new DataTexture(data, 1, 1);
|
|
59
|
+
tex.needsUpdate = true;
|
|
60
|
+
return tex;
|
|
61
|
+
};
|
|
55
62
|
const INITIAL_UNIFORMS = {
|
|
56
63
|
uTexture: { value: null },
|
|
57
64
|
uGlowColor: { value: [0.6, 0.33, 1.0] },
|
|
@@ -63,8 +70,14 @@ export const PortalThumbnail = ({ thumbnailUrl, portalRadius }) => {
|
|
|
63
70
|
const geometryRef = useRef(null);
|
|
64
71
|
const materialRef = useRef(null);
|
|
65
72
|
useEffect(() => {
|
|
66
|
-
if (!thumbnailUrl)
|
|
67
|
-
|
|
73
|
+
if (!thumbnailUrl) {
|
|
74
|
+
const black = createBlackTexture();
|
|
75
|
+
setTexture(black);
|
|
76
|
+
return () => {
|
|
77
|
+
black.dispose();
|
|
78
|
+
setTexture(null);
|
|
79
|
+
};
|
|
80
|
+
}
|
|
68
81
|
const loader = new TextureLoader();
|
|
69
82
|
loader.setCrossOrigin('anonymous');
|
|
70
83
|
let cancelled = false;
|
|
@@ -74,6 +87,10 @@ export const PortalThumbnail = ({ thumbnailUrl, portalRadius }) => {
|
|
|
74
87
|
setTexture(loaded);
|
|
75
88
|
}, undefined, (err) => {
|
|
76
89
|
console.error('PortalThumbnail: texture load failed', err);
|
|
90
|
+
if (!cancelled) {
|
|
91
|
+
const black = createBlackTexture();
|
|
92
|
+
setTexture(black);
|
|
93
|
+
}
|
|
77
94
|
});
|
|
78
95
|
return () => {
|
|
79
96
|
cancelled = true;
|
|
@@ -105,9 +122,9 @@ export const PortalThumbnail = ({ thumbnailUrl, portalRadius }) => {
|
|
|
105
122
|
materialRef.current.uniforms.uTime.value = clock.getElapsedTime();
|
|
106
123
|
}
|
|
107
124
|
});
|
|
125
|
+
const size = portalRadius * (2 / 3) * 2;
|
|
108
126
|
if (!texture)
|
|
109
127
|
return null;
|
|
110
|
-
const size = portalRadius * (2 / 3) * 2;
|
|
111
128
|
return (_jsx("group", { ref: meshRef, position: [0, baseY, 0], children: _jsxs("mesh", { children: [_jsx("planeGeometry", { ref: geometryRef, args: [size, size] }), _jsx("shaderMaterial", { ref: materialRef, vertexShader: vertexShader, fragmentShader: fragmentShader, uniforms: INITIAL_UNIFORMS, transparent: true })] }) }));
|
|
112
129
|
};
|
|
113
130
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalThumbnail/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnD,OAAO,EAAgE,aAAa,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Portal/components/PortalThumbnail/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,8 @@ import type { Props } from './types';
|
|
|
3
3
|
* Propsにデフォルト値を適用して返す
|
|
4
4
|
*/
|
|
5
5
|
export declare const usePortalProps: (props: Props) => {
|
|
6
|
+
instanceId: string;
|
|
6
7
|
position: import("three").Vector3Tuple;
|
|
7
8
|
rotation: import("three").Vector3Tuple;
|
|
8
|
-
thumbnailUrl: string | undefined;
|
|
9
|
-
onEnter: (() => void) | undefined;
|
|
10
9
|
};
|
|
11
10
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK;;;;CAY1C,CAAA"}
|
|
@@ -3,12 +3,11 @@ import { PORTAL_DEFAULTS } from './constants';
|
|
|
3
3
|
* Propsにデフォルト値を適用して返す
|
|
4
4
|
*/
|
|
5
5
|
export const usePortalProps = (props) => {
|
|
6
|
-
const { position = PORTAL_DEFAULTS.position, rotation = PORTAL_DEFAULTS.rotation,
|
|
6
|
+
const { instanceId, position = PORTAL_DEFAULTS.position, rotation = PORTAL_DEFAULTS.rotation, } = props;
|
|
7
7
|
return {
|
|
8
|
+
instanceId,
|
|
8
9
|
position,
|
|
9
10
|
rotation,
|
|
10
|
-
thumbnailUrl,
|
|
11
|
-
onEnter,
|
|
12
11
|
};
|
|
13
12
|
};
|
|
14
13
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/components/Portal/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE;IAC7C,MAAM,EACJ,QAAQ,GAAG,eAAe,CAAC,QAAQ,EACnC,QAAQ,GAAG,eAAe,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/components/Portal/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE;IAC7C,MAAM,EACJ,UAAU,EACV,QAAQ,GAAG,eAAe,CAAC,QAAQ,EACnC,QAAQ,GAAG,eAAe,CAAC,QAAQ,GACpC,GAAG,KAAK,CAAA;IAET,OAAO;QACL,UAAU;QACV,QAAQ;QACR,QAAQ;KACT,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,YAAY,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,SAAS,CAAA;AAUnD,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,4CA8DlC,CAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Text } from '@react-three/drei';
|
|
3
|
+
import { useInstance } from '../../hooks/useInstance';
|
|
2
4
|
import { PortalGlow } from './components/PortalGlow';
|
|
3
5
|
import { PortalParticles } from './components/PortalParticles';
|
|
4
6
|
import { PortalPedestal } from './components/PortalPedestal';
|
|
@@ -7,8 +9,14 @@ import { PortalVortex } from './components/PortalVortex';
|
|
|
7
9
|
import { PORTAL_DEFAULTS } from './constants';
|
|
8
10
|
import { usePortalProps } from './hooks';
|
|
9
11
|
const PARTICLE_COUNT = 30;
|
|
12
|
+
/** サムネイル上部からのラベル位置を計算 */
|
|
13
|
+
const portalRadius = PORTAL_DEFAULTS.portalRadius;
|
|
14
|
+
const thumbnailBaseY = portalRadius * 0.15 + 0.15 + portalRadius * 0.7;
|
|
15
|
+
const thumbnailHalfSize = portalRadius * (2 / 3);
|
|
16
|
+
const LABEL_BASE_Y = thumbnailBaseY + thumbnailHalfSize;
|
|
10
17
|
export const Portal = (props) => {
|
|
11
|
-
const { position, rotation,
|
|
12
|
-
|
|
18
|
+
const { instanceId, position, rotation, } = usePortalProps(props);
|
|
19
|
+
const { info, navigateWithConfirm } = useInstance(instanceId);
|
|
20
|
+
return (_jsxs("group", { position: position, rotation: rotation, children: [_jsx(PortalVortex, { color: PORTAL_DEFAULTS.color, secondaryColor: PORTAL_DEFAULTS.secondaryColor, intensity: PORTAL_DEFAULTS.intensity, rotationSpeed: PORTAL_DEFAULTS.rotationSpeed, portalRadius: PORTAL_DEFAULTS.portalRadius }), _jsx(PortalThumbnail, { thumbnailUrl: info?.world.thumbnailUrl ?? undefined, portalRadius: PORTAL_DEFAULTS.portalRadius }), _jsx(PortalGlow, { color: PORTAL_DEFAULTS.secondaryColor, intensity: PORTAL_DEFAULTS.intensity }), _jsx(PortalParticles, { particleCount: PARTICLE_COUNT, color: PORTAL_DEFAULTS.secondaryColor, portalRadius: PORTAL_DEFAULTS.portalRadius, rotationSpeed: PORTAL_DEFAULTS.rotationSpeed }), _jsx(PortalPedestal, { onEnter: navigateWithConfirm }), info && (_jsxs(_Fragment, { children: [_jsx(Text, { position: [0, LABEL_BASE_Y + 0.3, 0], fontSize: 0.12, color: "white", anchorX: "center", anchorY: "bottom", maxWidth: 1.6, children: info.world.name }), _jsx(Text, { position: [0, LABEL_BASE_Y + 0.17, 0], fontSize: 0.07, color: "#cccccc", anchorX: "center", anchorY: "bottom", maxWidth: 1.6, children: info.name })] }))] }));
|
|
13
21
|
};
|
|
14
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Portal/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKxC,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,EAAE;IACrC,MAAM,EACJ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Portal/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKxC,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB,yBAAyB;AACzB,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAA;AACjD,MAAM,cAAc,GAAG,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,CAAA;AACtE,MAAM,iBAAiB,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAChD,MAAM,YAAY,GAAG,cAAc,GAAG,iBAAiB,CAAA;AAEvD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,EAAE;IACrC,MAAM,EACJ,UAAU,EACV,QAAQ,EACR,QAAQ,GACT,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IAEzB,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;IAE7D,OAAO,CACL,iBAAO,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,aAC3C,KAAC,YAAY,IACX,KAAK,EAAE,eAAe,CAAC,KAAK,EAC5B,cAAc,EAAE,eAAe,CAAC,cAAc,EAC9C,SAAS,EAAE,eAAe,CAAC,SAAS,EACpC,aAAa,EAAE,eAAe,CAAC,aAAa,EAC5C,YAAY,EAAE,eAAe,CAAC,YAAY,GAC1C,EACF,KAAC,eAAe,IACd,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS,EACnD,YAAY,EAAE,eAAe,CAAC,YAAY,GAC1C,EACF,KAAC,UAAU,IACT,KAAK,EAAE,eAAe,CAAC,cAAc,EACrC,SAAS,EAAE,eAAe,CAAC,SAAS,GACpC,EACF,KAAC,eAAe,IACd,aAAa,EAAE,cAAc,EAC7B,KAAK,EAAE,eAAe,CAAC,cAAc,EACrC,YAAY,EAAE,eAAe,CAAC,YAAY,EAC1C,aAAa,EAAE,eAAe,CAAC,aAAa,GAC5C,EACF,KAAC,cAAc,IAAC,OAAO,EAAE,mBAAmB,GAAI,EAG/C,IAAI,IAAI,CACP,8BACE,KAAC,IAAI,IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,YAAY,GAAG,GAAG,EAAE,CAAC,CAAC,EACpC,QAAQ,EAAE,IAAI,EACd,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,EAChB,QAAQ,EAAE,GAAG,YAEZ,IAAI,CAAC,KAAK,CAAC,IAAI,GACX,EAEP,KAAC,IAAI,IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,EAAE,CAAC,CAAC,EACrC,QAAQ,EAAE,IAAI,EACd,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,QAAQ,EAChB,OAAO,EAAC,QAAQ,EAChB,QAAQ,EAAE,GAAG,YAEZ,IAAI,CAAC,IAAI,GACL,IACN,CACJ,IACK,CACT,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEzC,MAAM,WAAW,KAAK;IACpB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Portal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEzC,MAAM,WAAW,KAAK;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACxB,MAAM,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IAC3C,eAAe,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IACpD,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { WorldInfo } from './WorldContext';
|
|
3
|
+
export interface InstanceInfo {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
description: string | null;
|
|
7
|
+
currentUsers: number;
|
|
8
|
+
maxCapacity: number;
|
|
9
|
+
isPublic: boolean;
|
|
10
|
+
allowGuests: boolean;
|
|
11
|
+
owner?: {
|
|
12
|
+
id: string;
|
|
13
|
+
displayName: string;
|
|
14
|
+
userIconUrl?: string | null;
|
|
15
|
+
};
|
|
16
|
+
world: WorldInfo;
|
|
17
|
+
}
|
|
18
|
+
export interface InstanceContextValue {
|
|
19
|
+
/** instanceId からインスタンス情報を取得 */
|
|
20
|
+
getInstanceInfo: (instanceId: string) => Promise<InstanceInfo>;
|
|
21
|
+
/** 指定インスタンスへ遷移 */
|
|
22
|
+
navigateToInstance: (instanceId: string) => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 開発環境用のデフォルト実装(console.log のみ)
|
|
26
|
+
* プラットフォーム側が実装を注入しない場合に使用される
|
|
27
|
+
*/
|
|
28
|
+
export declare const createDefaultInstanceImplementation: () => InstanceContextValue;
|
|
29
|
+
/**
|
|
30
|
+
* インスタンス情報の取得・遷移機能を提供する Context
|
|
31
|
+
* xrift-frontend 側で実装を注入し、ワールド側で利用できる
|
|
32
|
+
*/
|
|
33
|
+
export declare const InstanceContext: import("react").Context<InstanceContextValue | null>;
|
|
34
|
+
interface Props {
|
|
35
|
+
value: InstanceContextValue;
|
|
36
|
+
children: ReactNode;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* インスタンス情報の取得・遷移機能を提供する ContextProvider
|
|
40
|
+
*/
|
|
41
|
+
export declare const InstanceProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
/**
|
|
43
|
+
* インスタンスの Context を取得する hook
|
|
44
|
+
* @throws {Error} InstanceProvider の外で呼び出された場合
|
|
45
|
+
*/
|
|
46
|
+
export declare const useInstanceContext: () => InstanceContextValue;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=InstanceContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstanceContext.d.ts","sourceRoot":"","sources":["../../src/contexts/InstanceContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE;QACN,EAAE,EAAE,MAAM,CAAA;QACV,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;IACD,KAAK,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9D,kBAAkB;IAClB,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD;AAED;;;GAGG;AACH,eAAO,MAAM,mCAAmC,QAAO,oBA0BrD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,sDAAmD,CAAA;AAE/E,UAAU,KAAK;IACb,KAAK,EAAE,oBAAoB,CAAA;IAC3B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,qBAAqB,KAAK,4CAE1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAO,oBAMrC,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* 開発環境用のデフォルト実装(console.log のみ)
|
|
5
|
+
* プラットフォーム側が実装を注入しない場合に使用される
|
|
6
|
+
*/
|
|
7
|
+
export const createDefaultInstanceImplementation = () => ({
|
|
8
|
+
getInstanceInfo: async (instanceId) => {
|
|
9
|
+
console.log('[Instance] getInstanceInfo called', instanceId);
|
|
10
|
+
return {
|
|
11
|
+
id: '',
|
|
12
|
+
name: '',
|
|
13
|
+
description: null,
|
|
14
|
+
currentUsers: 0,
|
|
15
|
+
maxCapacity: 0,
|
|
16
|
+
isPublic: false,
|
|
17
|
+
allowGuests: false,
|
|
18
|
+
world: {
|
|
19
|
+
id: '',
|
|
20
|
+
name: '',
|
|
21
|
+
description: null,
|
|
22
|
+
thumbnailUrl: null,
|
|
23
|
+
isPublic: false,
|
|
24
|
+
instanceCount: 0,
|
|
25
|
+
totalVisitCount: 0,
|
|
26
|
+
uniqueVisitorCount: 0,
|
|
27
|
+
favoriteCount: 0,
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
},
|
|
31
|
+
navigateToInstance: (instanceId) => console.log('[Instance] navigateToInstance called', instanceId),
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* インスタンス情報の取得・遷移機能を提供する Context
|
|
35
|
+
* xrift-frontend 側で実装を注入し、ワールド側で利用できる
|
|
36
|
+
*/
|
|
37
|
+
export const InstanceContext = createContext(null);
|
|
38
|
+
/**
|
|
39
|
+
* インスタンス情報の取得・遷移機能を提供する ContextProvider
|
|
40
|
+
*/
|
|
41
|
+
export const InstanceProvider = ({ value, children }) => {
|
|
42
|
+
return _jsx(InstanceContext.Provider, { value: value, children: children });
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* インスタンスの Context を取得する hook
|
|
46
|
+
* @throws {Error} InstanceProvider の外で呼び出された場合
|
|
47
|
+
*/
|
|
48
|
+
export const useInstanceContext = () => {
|
|
49
|
+
const context = useContext(InstanceContext);
|
|
50
|
+
if (!context) {
|
|
51
|
+
throw new Error('useInstanceContext must be used within InstanceProvider');
|
|
52
|
+
}
|
|
53
|
+
return context;
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=InstanceContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstanceContext.js","sourceRoot":"","sources":["../../src/contexts/InstanceContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAA;AA0BjE;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAyB,EAAE,CAAC,CAAC;IAC9E,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,UAAU,CAAC,CAAA;QAC5D,OAAO;YACL,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,EAAE;gBACR,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,KAAK;gBACf,aAAa,EAAE,CAAC;gBAChB,eAAe,EAAE,CAAC;gBAClB,kBAAkB,EAAE,CAAC;gBACrB,aAAa,EAAE,CAAC;aACjB;SACF,CAAA;IACH,CAAC;IACD,kBAAkB,EAAE,CAAC,UAAU,EAAE,EAAE,CACjC,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,UAAU,CAAC;CAClE,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAA8B,IAAI,CAAC,CAAA;AAO/E;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAS,EAAE,EAAE;IAC7D,OAAO,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA4B,CAAA;AACtF,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAyB,EAAE;IAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface InstanceInfo {
|
|
3
|
+
instanceName: string;
|
|
4
|
+
worldName: string;
|
|
5
|
+
thumbnailUrl: string | null;
|
|
6
|
+
currentUsers: number;
|
|
7
|
+
maxCapacity: number;
|
|
8
|
+
}
|
|
9
|
+
export interface InstanceInfoContextValue {
|
|
10
|
+
/** instanceId からインスタンス情報を取得 */
|
|
11
|
+
getInstanceInfo: (instanceId: string) => Promise<InstanceInfo>;
|
|
12
|
+
/** 指定インスタンスへ遷移 */
|
|
13
|
+
navigateToInstance: (instanceId: string) => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 開発環境用のデフォルト実装(console.log のみ)
|
|
17
|
+
* プラットフォーム側が実装を注入しない場合に使用される
|
|
18
|
+
*/
|
|
19
|
+
export declare const createDefaultInstanceInfoImplementation: () => InstanceInfoContextValue;
|
|
20
|
+
/**
|
|
21
|
+
* インスタンス情報の取得・遷移機能を提供する Context
|
|
22
|
+
* xrift-frontend 側で実装を注入し、ワールド側で利用できる
|
|
23
|
+
*/
|
|
24
|
+
export declare const InstanceInfoContext: import("react").Context<InstanceInfoContextValue | null>;
|
|
25
|
+
interface Props {
|
|
26
|
+
value: InstanceInfoContextValue;
|
|
27
|
+
children: ReactNode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* インスタンス情報の取得・遷移機能を提供する ContextProvider
|
|
31
|
+
*/
|
|
32
|
+
export declare const InstanceInfoProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
/**
|
|
34
|
+
* インスタンス情報の Context を取得する hook
|
|
35
|
+
* @throws {Error} InstanceInfoProvider の外で呼び出された場合
|
|
36
|
+
*/
|
|
37
|
+
export declare const useInstanceInfoContext: () => InstanceInfoContextValue;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=InstanceInfoContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstanceInfoContext.d.ts","sourceRoot":"","sources":["../../src/contexts/InstanceInfoContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,+BAA+B;IAC/B,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9D,kBAAkB;IAClB,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD;AAED;;;GAGG;AACH,eAAO,MAAM,uCAAuC,QAAO,wBAazD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,0DAAuD,CAAA;AAEvF,UAAU,KAAK;IACb,KAAK,EAAE,wBAAwB,CAAA;IAC/B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,qBAAqB,KAAK,4CAE9D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAO,wBAMzC,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* 開発環境用のデフォルト実装(console.log のみ)
|
|
5
|
+
* プラットフォーム側が実装を注入しない場合に使用される
|
|
6
|
+
*/
|
|
7
|
+
export const createDefaultInstanceInfoImplementation = () => ({
|
|
8
|
+
getInstanceInfo: async (instanceId) => {
|
|
9
|
+
console.log('[InstanceInfo] getInstanceInfo called', instanceId);
|
|
10
|
+
return {
|
|
11
|
+
instanceName: '',
|
|
12
|
+
worldName: '',
|
|
13
|
+
thumbnailUrl: null,
|
|
14
|
+
currentUsers: 0,
|
|
15
|
+
maxCapacity: 0,
|
|
16
|
+
};
|
|
17
|
+
},
|
|
18
|
+
navigateToInstance: (instanceId) => console.log('[InstanceInfo] navigateToInstance called', instanceId),
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* インスタンス情報の取得・遷移機能を提供する Context
|
|
22
|
+
* xrift-frontend 側で実装を注入し、ワールド側で利用できる
|
|
23
|
+
*/
|
|
24
|
+
export const InstanceInfoContext = createContext(null);
|
|
25
|
+
/**
|
|
26
|
+
* インスタンス情報の取得・遷移機能を提供する ContextProvider
|
|
27
|
+
*/
|
|
28
|
+
export const InstanceInfoProvider = ({ value, children }) => {
|
|
29
|
+
return _jsx(InstanceInfoContext.Provider, { value: value, children: children });
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* インスタンス情報の Context を取得する hook
|
|
33
|
+
* @throws {Error} InstanceInfoProvider の外で呼び出された場合
|
|
34
|
+
*/
|
|
35
|
+
export const useInstanceInfoContext = () => {
|
|
36
|
+
const context = useContext(InstanceInfoContext);
|
|
37
|
+
if (!context) {
|
|
38
|
+
throw new Error('useInstanceInfoContext must be used within InstanceInfoProvider');
|
|
39
|
+
}
|
|
40
|
+
return context;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=InstanceInfoContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstanceInfoContext.js","sourceRoot":"","sources":["../../src/contexts/InstanceInfoContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAA;AAiBjE;;;GAGG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,GAA6B,EAAE,CAAC,CAAC;IACtF,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,UAAU,CAAC,CAAA;QAChE,OAAO;YACL,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;SACf,CAAA;IACH,CAAC;IACD,kBAAkB,EAAE,CAAC,UAAU,EAAE,EAAE,CACjC,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,UAAU,CAAC;CACtE,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAkC,IAAI,CAAC,CAAA;AAOvF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAS,EAAE,EAAE;IACjE,OAAO,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAgC,CAAA;AAC9F,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAA6B,EAAE;IACnE,MAAM,OAAO,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;IACpF,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface PortalInstanceInfo {
|
|
3
|
+
instanceName: string;
|
|
4
|
+
worldName: string;
|
|
5
|
+
thumbnailUrl: string | null;
|
|
6
|
+
currentUsers: number;
|
|
7
|
+
maxCapacity: number;
|
|
8
|
+
}
|
|
9
|
+
export interface PortalContextValue {
|
|
10
|
+
/** instanceId からインスタンス情報を取得 */
|
|
11
|
+
getInstanceInfo: (instanceId: string) => Promise<PortalInstanceInfo>;
|
|
12
|
+
/** 指定インスタンスへ遷移 */
|
|
13
|
+
navigateToInstance: (instanceId: string) => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 開発環境用のデフォルト実装(console.log のみ)
|
|
17
|
+
* プラットフォーム側が実装を注入しない場合に使用される
|
|
18
|
+
*/
|
|
19
|
+
export declare const createDefaultPortalImplementation: () => PortalContextValue;
|
|
20
|
+
/**
|
|
21
|
+
* ポータル遷移機能を提供する Context
|
|
22
|
+
* xrift-frontend 側で実装を注入し、ワールド側で利用できる
|
|
23
|
+
*/
|
|
24
|
+
export declare const PortalContext: import("react").Context<PortalContextValue | null>;
|
|
25
|
+
interface Props {
|
|
26
|
+
value: PortalContextValue;
|
|
27
|
+
children: ReactNode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* ポータル遷移機能を提供する ContextProvider
|
|
31
|
+
*/
|
|
32
|
+
export declare const PortalProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
/**
|
|
34
|
+
* ポータルの Context を取得する hook
|
|
35
|
+
* @throws {Error} PortalProvider の外で呼び出された場合
|
|
36
|
+
*/
|
|
37
|
+
export declare const usePortalContext: () => PortalContextValue;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=PortalContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortalContext.d.ts","sourceRoot":"","sources":["../../src/contexts/PortalContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACpE,kBAAkB;IAClB,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CACjD;AAED;;;GAGG;AACH,eAAO,MAAM,iCAAiC,QAAO,kBAanD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,oDAAiD,CAAA;AAE3E,UAAU,KAAK;IACb,KAAK,EAAE,kBAAkB,CAAA;IACzB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,qBAAqB,KAAK,4CAExD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAO,kBAMnC,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* 開発環境用のデフォルト実装(console.log のみ)
|
|
5
|
+
* プラットフォーム側が実装を注入しない場合に使用される
|
|
6
|
+
*/
|
|
7
|
+
export const createDefaultPortalImplementation = () => ({
|
|
8
|
+
getInstanceInfo: async (instanceId) => {
|
|
9
|
+
console.log('[Portal] getInstanceInfo called', instanceId);
|
|
10
|
+
return {
|
|
11
|
+
instanceName: '',
|
|
12
|
+
worldName: '',
|
|
13
|
+
thumbnailUrl: null,
|
|
14
|
+
currentUsers: 0,
|
|
15
|
+
maxCapacity: 0,
|
|
16
|
+
};
|
|
17
|
+
},
|
|
18
|
+
navigateToInstance: (instanceId) => console.log('[Portal] navigateToInstance called', instanceId),
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* ポータル遷移機能を提供する Context
|
|
22
|
+
* xrift-frontend 側で実装を注入し、ワールド側で利用できる
|
|
23
|
+
*/
|
|
24
|
+
export const PortalContext = createContext(null);
|
|
25
|
+
/**
|
|
26
|
+
* ポータル遷移機能を提供する ContextProvider
|
|
27
|
+
*/
|
|
28
|
+
export const PortalProvider = ({ value, children }) => {
|
|
29
|
+
return _jsx(PortalContext.Provider, { value: value, children: children });
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* ポータルの Context を取得する hook
|
|
33
|
+
* @throws {Error} PortalProvider の外で呼び出された場合
|
|
34
|
+
*/
|
|
35
|
+
export const usePortalContext = () => {
|
|
36
|
+
const context = useContext(PortalContext);
|
|
37
|
+
if (!context) {
|
|
38
|
+
throw new Error('usePortalContext must be used within PortalProvider');
|
|
39
|
+
}
|
|
40
|
+
return context;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=PortalContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortalContext.js","sourceRoot":"","sources":["../../src/contexts/PortalContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAA;AAiBjE;;;GAGG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAuB,EAAE,CAAC,CAAC;IAC1E,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAA;QAC1D,OAAO;YACL,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;SACf,CAAA;IACH,CAAC;IACD,kBAAkB,EAAE,CAAC,UAAU,EAAE,EAAE,CACjC,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,UAAU,CAAC;CAChE,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAA;AAO3E;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAS,EAAE,EAAE;IAC3D,OAAO,KAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA0B,CAAA;AAClF,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAuB,EAAE;IACvD,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface WorldInfo {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description: string | null;
|
|
6
|
+
thumbnailUrl: string | null;
|
|
7
|
+
isPublic: boolean;
|
|
8
|
+
instanceCount: number;
|
|
9
|
+
totalVisitCount: number;
|
|
10
|
+
uniqueVisitorCount: number;
|
|
11
|
+
favoriteCount: number;
|
|
12
|
+
owner?: {
|
|
13
|
+
id: string;
|
|
14
|
+
displayName: string;
|
|
15
|
+
userIconUrl?: string | null;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export interface WorldContextValue {
|
|
19
|
+
/** worldId からワールド情報を取得 */
|
|
20
|
+
getWorldInfo: (worldId: string) => Promise<WorldInfo>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 開発環境用のデフォルト実装(console.log のみ)
|
|
24
|
+
* プラットフォーム側が実装を注入しない場合に使用される
|
|
25
|
+
*/
|
|
26
|
+
export declare const createDefaultWorldImplementation: () => WorldContextValue;
|
|
27
|
+
/**
|
|
28
|
+
* ワールド情報の取得機能を提供する Context
|
|
29
|
+
* xrift-frontend 側で実装を注入し、ワールド側で利用できる
|
|
30
|
+
*/
|
|
31
|
+
export declare const WorldContext: import("react").Context<WorldContextValue | null>;
|
|
32
|
+
interface Props {
|
|
33
|
+
value: WorldContextValue;
|
|
34
|
+
children: ReactNode;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* ワールド情報の取得機能を提供する ContextProvider
|
|
38
|
+
*/
|
|
39
|
+
export declare const WorldProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
/**
|
|
41
|
+
* ワールドの Context を取得する hook
|
|
42
|
+
* @throws {Error} WorldProvider の外で呼び出された場合
|
|
43
|
+
*/
|
|
44
|
+
export declare const useWorldContext: () => WorldContextValue;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=WorldContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorldContext.d.ts","sourceRoot":"","sources":["../../src/contexts/WorldContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAA;AAEjE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE;QACN,EAAE,EAAE,MAAM,CAAA;QACV,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC5B,CAAA;CACF;AAED,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;CACtD;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,QAAO,iBAelD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,mDAAgD,CAAA;AAEzE,UAAU,KAAK;IACb,KAAK,EAAE,iBAAiB,CAAA;IACxB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,qBAAqB,KAAK,4CAEvD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,iBAMlC,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* 開発環境用のデフォルト実装(console.log のみ)
|
|
5
|
+
* プラットフォーム側が実装を注入しない場合に使用される
|
|
6
|
+
*/
|
|
7
|
+
export const createDefaultWorldImplementation = () => ({
|
|
8
|
+
getWorldInfo: async (worldId) => {
|
|
9
|
+
console.log('[World] getWorldInfo called', worldId);
|
|
10
|
+
return {
|
|
11
|
+
id: '',
|
|
12
|
+
name: '',
|
|
13
|
+
description: null,
|
|
14
|
+
thumbnailUrl: null,
|
|
15
|
+
isPublic: false,
|
|
16
|
+
instanceCount: 0,
|
|
17
|
+
totalVisitCount: 0,
|
|
18
|
+
uniqueVisitorCount: 0,
|
|
19
|
+
favoriteCount: 0,
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* ワールド情報の取得機能を提供する Context
|
|
25
|
+
* xrift-frontend 側で実装を注入し、ワールド側で利用できる
|
|
26
|
+
*/
|
|
27
|
+
export const WorldContext = createContext(null);
|
|
28
|
+
/**
|
|
29
|
+
* ワールド情報の取得機能を提供する ContextProvider
|
|
30
|
+
*/
|
|
31
|
+
export const WorldProvider = ({ value, children }) => {
|
|
32
|
+
return _jsx(WorldContext.Provider, { value: value, children: children });
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* ワールドの Context を取得する hook
|
|
36
|
+
* @throws {Error} WorldProvider の外で呼び出された場合
|
|
37
|
+
*/
|
|
38
|
+
export const useWorldContext = () => {
|
|
39
|
+
const context = useContext(WorldContext);
|
|
40
|
+
if (!context) {
|
|
41
|
+
throw new Error('useWorldContext must be used within WorldProvider');
|
|
42
|
+
}
|
|
43
|
+
return context;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=WorldContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorldContext.js","sourceRoot":"","sources":["../../src/contexts/WorldContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,MAAM,OAAO,CAAA;AAwBjE;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAsB,EAAE,CAAC,CAAC;IACxE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAA;QACnD,OAAO;YACL,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;YAClB,kBAAkB,EAAE,CAAC;YACrB,aAAa,EAAE,CAAC;SACjB,CAAA;IACH,CAAC;CACF,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAA;AAOzE;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAS,EAAE,EAAE;IAC1D,OAAO,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAyB,CAAA;AAChF,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAsB,EAAE;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACtE,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -4,6 +4,8 @@ import { type InstanceStateContextValue } from './InstanceStateContext';
|
|
|
4
4
|
import { type ScreenShareContextValue } from './ScreenShareContext';
|
|
5
5
|
import { type SpawnPointContextValue } from './SpawnPointContext';
|
|
6
6
|
import { type ConfirmContextValue } from './ConfirmContext';
|
|
7
|
+
import { type InstanceContextValue } from './InstanceContext';
|
|
8
|
+
import { type WorldContextValue } from './WorldContext';
|
|
7
9
|
import { type TeleportContextValue } from './TeleportContext';
|
|
8
10
|
import { type TextInputContextValue } from './TextInputContext';
|
|
9
11
|
import { type UsersContextValue } from './UsersContext';
|
|
@@ -55,6 +57,11 @@ interface Props {
|
|
|
55
57
|
* 指定しない場合はデフォルト実装(window.confirm)が使用される
|
|
56
58
|
*/
|
|
57
59
|
confirmImplementation?: ConfirmContextValue;
|
|
60
|
+
/**
|
|
61
|
+
* インスタンス情報取得・遷移の実装(オプション)
|
|
62
|
+
* 指定しない場合はデフォルト実装(console.log)が使用される
|
|
63
|
+
*/
|
|
64
|
+
instanceImplementation?: InstanceContextValue;
|
|
58
65
|
/**
|
|
59
66
|
* テレポート機能の実装(オプション)
|
|
60
67
|
* 指定しない場合はデフォルト実装(console.log)が使用される
|
|
@@ -70,6 +77,11 @@ interface Props {
|
|
|
70
77
|
* 指定しない場合はデフォルト実装(空の状態)が使用される
|
|
71
78
|
*/
|
|
72
79
|
usersImplementation?: UsersContextValue;
|
|
80
|
+
/**
|
|
81
|
+
* ワールド情報取得の実装(オプション)
|
|
82
|
+
* 指定しない場合はデフォルト実装(console.log)が使用される
|
|
83
|
+
*/
|
|
84
|
+
worldImplementation?: WorldContextValue;
|
|
73
85
|
/**
|
|
74
86
|
* ワールドイベントの実装(オプション)
|
|
75
87
|
* 指定しない場合はデフォルト実装(ローカル EventEmitter)が使用される
|
|
@@ -82,7 +94,7 @@ interface Props {
|
|
|
82
94
|
* Module Federationで動的にロードされたワールドコンポーネントに
|
|
83
95
|
* 必要な情報を注入するために使用
|
|
84
96
|
*/
|
|
85
|
-
export declare const XRiftProvider: ({ baseUrl, confirmImplementation, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldEventImplementation, children, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
97
|
+
export declare const XRiftProvider: ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, worldEventImplementation, children, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
86
98
|
/**
|
|
87
99
|
* XRift ワールドの情報を取得するhook
|
|
88
100
|
* ワールドプロジェクト側でアセットの相対パスを絶対パスに変換する際に使用
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XRiftContext.d.ts","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAA8C,MAAM,OAAO,CAAA;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAyB,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAA;AAW5B,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC;;OAEG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAA;IAChD;;OAEG;IACH,sBAAsB,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAA;CAKnD;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,mDAAgD,CAAA;AAEzE,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,2BAA2B,CAAC,EAAE,yBAAyB,CAAA;IACvD;;;OAGG;IACH,yBAAyB,CAAC,EAAE,uBAAuB,CAAA;IACnD;;;OAGG;IACH,wBAAwB,CAAC,EAAE,sBAAsB,CAAA;IACjD;;;OAGG;IACH,qBAAqB,CAAC,EAAE,mBAAmB,CAAA;IAC3C;;;OAGG;IACH,sBAAsB,CAAC,EAAE,oBAAoB,CAAA;IAC7C;;;OAGG;IACH,uBAAuB,CAAC,EAAE,qBAAqB,CAAA;IAC/C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,iBAAiB,CAAA;IACvC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,sBAAsB,CAAA;IACjD,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,
|
|
1
|
+
{"version":3,"file":"XRiftContext.d.ts","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAA8C,MAAM,OAAO,CAAA;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAyB,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAuB,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAA;AAW5B,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC;;OAEG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAA;IAChD;;OAEG;IACH,sBAAsB,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAA;CAKnD;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,mDAAgD,CAAA;AAEzE,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,2BAA2B,CAAC,EAAE,yBAAyB,CAAA;IACvD;;;OAGG;IACH,yBAAyB,CAAC,EAAE,uBAAuB,CAAA;IACnD;;;OAGG;IACH,wBAAwB,CAAC,EAAE,sBAAsB,CAAA;IACjD;;;OAGG;IACH,qBAAqB,CAAC,EAAE,mBAAmB,CAAA;IAC3C;;;OAGG;IACH,sBAAsB,CAAC,EAAE,oBAAoB,CAAA;IAC7C;;;OAGG;IACH,sBAAsB,CAAC,EAAE,oBAAoB,CAAA;IAC7C;;;OAGG;IACH,uBAAuB,CAAC,EAAE,qBAAqB,CAAA;IAC/C;;;OAGG;IACH,mBAAmB,CAAC,EAAE,iBAAiB,CAAA;IACvC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,iBAAiB,CAAA;IACvC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,sBAAsB,CAAA;IACjD,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,8QAa3B,KAAK,4CAwFP,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,QAAO,iBAQ3B,CAAA"}
|
|
@@ -4,6 +4,8 @@ import { InstanceStateProvider } from './InstanceStateContext';
|
|
|
4
4
|
import { ScreenShareProvider } from './ScreenShareContext';
|
|
5
5
|
import { SpawnPointProvider } from './SpawnPointContext';
|
|
6
6
|
import { ConfirmProvider, createDefaultConfirmImplementation, } from './ConfirmContext';
|
|
7
|
+
import { InstanceProvider, createDefaultInstanceImplementation, } from './InstanceContext';
|
|
8
|
+
import { WorldProvider, createDefaultWorldImplementation, } from './WorldContext';
|
|
7
9
|
import { TeleportProvider, createDefaultTeleportImplementation, } from './TeleportContext';
|
|
8
10
|
import { TextInputProvider, createDefaultTextInputImplementation, } from './TextInputContext';
|
|
9
11
|
import { UsersProvider } from './UsersContext';
|
|
@@ -26,7 +28,7 @@ export const XRiftContext = createContext(null);
|
|
|
26
28
|
* Module Federationで動的にロードされたワールドコンポーネントに
|
|
27
29
|
* 必要な情報を注入するために使用
|
|
28
30
|
*/
|
|
29
|
-
export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldEventImplementation, children, }) => {
|
|
31
|
+
export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, worldEventImplementation, children, }) => {
|
|
30
32
|
// インタラクト可能なオブジェクトの管理
|
|
31
33
|
const [interactableObjects] = useState(() => new Set());
|
|
32
34
|
// 画面共有の実装(指定がない場合はデフォルト実装を使用)
|
|
@@ -35,6 +37,10 @@ export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImp
|
|
|
35
37
|
const textInputImpl = useMemo(() => textInputImplementation ?? createDefaultTextInputImplementation(), [textInputImplementation]);
|
|
36
38
|
// 確認モーダルの実装(指定がない場合はデフォルト実装を使用)
|
|
37
39
|
const confirmImpl = useMemo(() => confirmImplementation ?? createDefaultConfirmImplementation(), [confirmImplementation]);
|
|
40
|
+
// インスタンス情報の実装(指定がない場合はデフォルト実装を使用)
|
|
41
|
+
const instanceImpl = useMemo(() => instanceImplementation ?? createDefaultInstanceImplementation(), [instanceImplementation]);
|
|
42
|
+
// ワールド情報の実装(指定がない場合はデフォルト実装を使用)
|
|
43
|
+
const worldImpl = useMemo(() => worldImplementation ?? createDefaultWorldImplementation(), [worldImplementation]);
|
|
38
44
|
// テレポートの実装(指定がない場合はデフォルト実装を使用)
|
|
39
45
|
const teleportImpl = useMemo(() => teleportImplementation ?? createDefaultTeleportImplementation(), [teleportImplementation]);
|
|
40
46
|
// ワールドイベントの実装(指定がない場合はデフォルト実装を使用)
|
|
@@ -52,7 +58,7 @@ export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImp
|
|
|
52
58
|
interactableObjects,
|
|
53
59
|
registerInteractable,
|
|
54
60
|
unregisterInteractable,
|
|
55
|
-
}, children: _jsx(ScreenShareProvider, { value: screenShareImpl, children: _jsx(TextInputProvider, { value: textInputImpl, children: _jsx(InstanceStateProvider, { implementation: instanceStateImplementation, children: _jsx(SpawnPointProvider, { implementation: spawnPointImplementation, children: _jsx(UsersProvider, { implementation: usersImplementation, children: _jsx(WorldEventProvider, { value: worldEventImpl, children: _jsx(TeleportProvider, { value: teleportImpl, children: _jsx(ConfirmProvider, { value: confirmImpl, children: children }) }) }) }) }) }) }) }) }));
|
|
61
|
+
}, children: _jsx(ScreenShareProvider, { value: screenShareImpl, children: _jsx(TextInputProvider, { value: textInputImpl, children: _jsx(InstanceStateProvider, { implementation: instanceStateImplementation, children: _jsx(SpawnPointProvider, { implementation: spawnPointImplementation, children: _jsx(UsersProvider, { implementation: usersImplementation, children: _jsx(WorldEventProvider, { value: worldEventImpl, children: _jsx(TeleportProvider, { value: teleportImpl, children: _jsx(ConfirmProvider, { value: confirmImpl, children: _jsx(WorldProvider, { value: worldImpl, children: _jsx(InstanceProvider, { value: instanceImpl, children: children }) }) }) }) }) }) }) }) }) }) }));
|
|
56
62
|
};
|
|
57
63
|
/**
|
|
58
64
|
* XRift ワールドの情報を取得するhook
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAkB,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEjG,OAAO,EAAE,qBAAqB,EAAkC,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAgC,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,kBAAkB,EAA+B,MAAM,qBAAqB,CAAA;AACrF,OAAO,EACL,eAAe,EACf,kCAAkC,GAEnC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,gBAAgB,EAChB,mCAAmC,GAEpC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,iBAAiB,EACjB,oCAAoC,GAErC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,aAAa,EAA0B,MAAM,gBAAgB,CAAA;AACtE,OAAO,EACL,kBAAkB,EAClB,qCAAqC,GAEtC,MAAM,qBAAqB,CAAA;AAE5B,sBAAsB;AACtB,MAAM,sCAAsC,GAAG,GAA4B,EAAE,CAAC,CAAC;IAC7E,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC;IAC5E,eAAe,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC;IAC1E,eAAe,EAAE,KAAK;CACvB,CAAC,CAAA;AA2BF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAA2B,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type InstanceInfo } from '../contexts/InstanceContext';
|
|
2
|
+
/**
|
|
3
|
+
* インスタンス情報の取得・確認付き遷移を提供するフック
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* const { info, navigateWithConfirm } = useInstance('instance-id')
|
|
7
|
+
*
|
|
8
|
+
* // インスタンス情報を表示
|
|
9
|
+
* <Text>{info?.world.name}</Text>
|
|
10
|
+
*
|
|
11
|
+
* // 確認モーダル付きで遷移
|
|
12
|
+
* <PortalPedestal onEnter={navigateWithConfirm} />
|
|
13
|
+
*/
|
|
14
|
+
export declare const useInstance: (instanceId: string) => {
|
|
15
|
+
info: InstanceInfo | null;
|
|
16
|
+
navigateWithConfirm: () => Promise<void>;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=useInstance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInstance.d.ts","sourceRoot":"","sources":["../../src/hooks/useInstance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,6BAA6B,CAAA;AAEnF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,GAAI,YAAY,MAAM;;;CAqC7C,CAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
2
|
+
import { useConfirmContext } from '../contexts/ConfirmContext';
|
|
3
|
+
import { useInstanceContext } from '../contexts/InstanceContext';
|
|
4
|
+
/**
|
|
5
|
+
* インスタンス情報の取得・確認付き遷移を提供するフック
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* const { info, navigateWithConfirm } = useInstance('instance-id')
|
|
9
|
+
*
|
|
10
|
+
* // インスタンス情報を表示
|
|
11
|
+
* <Text>{info?.world.name}</Text>
|
|
12
|
+
*
|
|
13
|
+
* // 確認モーダル付きで遷移
|
|
14
|
+
* <PortalPedestal onEnter={navigateWithConfirm} />
|
|
15
|
+
*/
|
|
16
|
+
export const useInstance = (instanceId) => {
|
|
17
|
+
const { getInstanceInfo, navigateToInstance } = useInstanceContext();
|
|
18
|
+
const { requestConfirm } = useConfirmContext();
|
|
19
|
+
const [info, setInfo] = useState(null);
|
|
20
|
+
// マウント時にインスタンス情報を取得
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
let cancelled = false;
|
|
23
|
+
getInstanceInfo(instanceId)
|
|
24
|
+
.then((result) => {
|
|
25
|
+
if (!cancelled)
|
|
26
|
+
setInfo(result);
|
|
27
|
+
})
|
|
28
|
+
.catch((err) => {
|
|
29
|
+
console.warn('[useInstance] Failed to fetch instance info:', err);
|
|
30
|
+
});
|
|
31
|
+
return () => {
|
|
32
|
+
cancelled = true;
|
|
33
|
+
};
|
|
34
|
+
}, [instanceId, getInstanceInfo]);
|
|
35
|
+
// 確認モーダル付きのインスタンス遷移
|
|
36
|
+
const navigateWithConfirm = useCallback(async () => {
|
|
37
|
+
try {
|
|
38
|
+
const latestInfo = await getInstanceInfo(instanceId);
|
|
39
|
+
const confirmed = await requestConfirm({
|
|
40
|
+
title: latestInfo.world.name,
|
|
41
|
+
message: `「${latestInfo.name}」に移動しますか?\n👥 ${latestInfo.currentUsers}/${latestInfo.maxCapacity}`,
|
|
42
|
+
confirmLabel: '移動する',
|
|
43
|
+
cancelLabel: 'キャンセル',
|
|
44
|
+
});
|
|
45
|
+
if (confirmed)
|
|
46
|
+
navigateToInstance(instanceId);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
console.warn('[useInstance] Failed to navigate:', err);
|
|
50
|
+
}
|
|
51
|
+
}, [instanceId, getInstanceInfo, navigateToInstance, requestConfirm]);
|
|
52
|
+
return { info, navigateWithConfirm };
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=useInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInstance.js","sourceRoot":"","sources":["../../src/hooks/useInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAqB,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAEnF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAkB,EAAE,EAAE;IAChD,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACpE,MAAM,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,CAAA;IAC9C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,CAAA;IAE3D,oBAAoB;IACpB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,eAAe,CAAC,UAAU,CAAC;aACxB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAA;IAEjC,oBAAoB;IACpB,MAAM,mBAAmB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAA;YACpD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;gBACrC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI;gBAC5B,OAAO,EAAE,IAAI,UAAU,CAAC,IAAI,iBAAiB,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,WAAW,EAAE;gBAChG,YAAY,EAAE,MAAM;gBACpB,WAAW,EAAE,OAAO;aACrB,CAAC,CAAA;YACF,IAAI,SAAS;gBAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;QACxD,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAA;IAErE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAA;AACtC,CAAC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type InstanceInfo } from '../contexts/InstanceInfoContext';
|
|
2
|
+
/**
|
|
3
|
+
* Portal 内部で使うヘルパーフック
|
|
4
|
+
* instanceId からインスタンス情報を取得し、台座進入時に確認モーダル → 遷移を行う
|
|
5
|
+
*/
|
|
6
|
+
export declare const usePortalNavigation: (instanceId: string) => {
|
|
7
|
+
info: InstanceInfo | null;
|
|
8
|
+
enterPortal: () => Promise<void>;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=usePortalNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePortalNavigation.d.ts","sourceRoot":"","sources":["../../src/hooks/usePortalNavigation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,iCAAiC,CAAA;AAE3F;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,YAAY,MAAM;;;CAqCrD,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
2
|
+
import { useConfirmContext } from '../contexts/ConfirmContext';
|
|
3
|
+
import { useInstanceInfoContext } from '../contexts/InstanceInfoContext';
|
|
4
|
+
/**
|
|
5
|
+
* Portal 内部で使うヘルパーフック
|
|
6
|
+
* instanceId からインスタンス情報を取得し、台座進入時に確認モーダル → 遷移を行う
|
|
7
|
+
*/
|
|
8
|
+
export const usePortalNavigation = (instanceId) => {
|
|
9
|
+
const { getInstanceInfo, navigateToInstance } = useInstanceInfoContext();
|
|
10
|
+
const { requestConfirm } = useConfirmContext();
|
|
11
|
+
const [info, setInfo] = useState(null);
|
|
12
|
+
// マウント時にインスタンス情報を取得
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
let cancelled = false;
|
|
15
|
+
getInstanceInfo(instanceId)
|
|
16
|
+
.then((result) => {
|
|
17
|
+
if (!cancelled)
|
|
18
|
+
setInfo(result);
|
|
19
|
+
})
|
|
20
|
+
.catch((err) => {
|
|
21
|
+
console.warn('[Portal] Failed to fetch instance info:', err);
|
|
22
|
+
});
|
|
23
|
+
return () => {
|
|
24
|
+
cancelled = true;
|
|
25
|
+
};
|
|
26
|
+
}, [instanceId, getInstanceInfo]);
|
|
27
|
+
// 台座進入時の処理
|
|
28
|
+
const enterPortal = useCallback(async () => {
|
|
29
|
+
try {
|
|
30
|
+
const latestInfo = await getInstanceInfo(instanceId);
|
|
31
|
+
const confirmed = await requestConfirm({
|
|
32
|
+
title: latestInfo.worldName,
|
|
33
|
+
message: `「${latestInfo.instanceName}」に移動しますか?\n👥 ${latestInfo.currentUsers}/${latestInfo.maxCapacity}`,
|
|
34
|
+
confirmLabel: '移動する',
|
|
35
|
+
cancelLabel: 'キャンセル',
|
|
36
|
+
});
|
|
37
|
+
if (confirmed)
|
|
38
|
+
navigateToInstance(instanceId);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
console.warn('[Portal] Failed to enter portal:', err);
|
|
42
|
+
}
|
|
43
|
+
}, [instanceId, getInstanceInfo, navigateToInstance, requestConfirm]);
|
|
44
|
+
return { info, enterPortal };
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=usePortalNavigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePortalNavigation.js","sourceRoot":"","sources":["../../src/hooks/usePortalNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAqB,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAE3F;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAE,EAAE;IACxD,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,sBAAsB,EAAE,CAAA;IACxE,MAAM,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,CAAA;IAC9C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAsB,IAAI,CAAC,CAAA;IAE3D,oBAAoB;IACpB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,eAAe,CAAC,UAAU,CAAC;aACxB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAA;IAEjC,WAAW;IACX,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAA;YACpD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;gBACrC,KAAK,EAAE,UAAU,CAAC,SAAS;gBAC3B,OAAO,EAAE,IAAI,UAAU,CAAC,YAAY,iBAAiB,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,WAAW,EAAE;gBACxG,YAAY,EAAE,MAAM;gBACpB,WAAW,EAAE,OAAO;aACrB,CAAC,CAAA;YACF,IAAI,SAAS;gBAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAA;QACvD,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAA;IAErE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;AAC9B,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type WorldInfo } from '../contexts/WorldContext';
|
|
2
|
+
/**
|
|
3
|
+
* ワールド情報の取得を提供するフック
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* const { info } = useWorld('world-id')
|
|
7
|
+
*
|
|
8
|
+
* // ワールド情報を表示
|
|
9
|
+
* <Text>{info?.name}</Text>
|
|
10
|
+
*/
|
|
11
|
+
export declare const useWorld: (worldId: string) => {
|
|
12
|
+
info: WorldInfo | null;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=useWorld.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWorld.d.ts","sourceRoot":"","sources":["../../src/hooks/useWorld.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,0BAA0B,CAAA;AAE1E;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM;;CAmBvC,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { useWorldContext } from '../contexts/WorldContext';
|
|
3
|
+
/**
|
|
4
|
+
* ワールド情報の取得を提供するフック
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const { info } = useWorld('world-id')
|
|
8
|
+
*
|
|
9
|
+
* // ワールド情報を表示
|
|
10
|
+
* <Text>{info?.name}</Text>
|
|
11
|
+
*/
|
|
12
|
+
export const useWorld = (worldId) => {
|
|
13
|
+
const { getWorldInfo } = useWorldContext();
|
|
14
|
+
const [info, setInfo] = useState(null);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
let cancelled = false;
|
|
17
|
+
getWorldInfo(worldId)
|
|
18
|
+
.then((result) => {
|
|
19
|
+
if (!cancelled)
|
|
20
|
+
setInfo(result);
|
|
21
|
+
})
|
|
22
|
+
.catch((err) => {
|
|
23
|
+
console.warn('[useWorld] Failed to fetch world info:', err);
|
|
24
|
+
});
|
|
25
|
+
return () => {
|
|
26
|
+
cancelled = true;
|
|
27
|
+
};
|
|
28
|
+
}, [worldId, getWorldInfo]);
|
|
29
|
+
return { info };
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=useWorld.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWorld.js","sourceRoot":"","sources":["../../src/hooks/useWorld.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAkB,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;IAC1C,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAA;IAC1C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC,CAAA;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,YAAY,CAAC,OAAO,CAAC;aAClB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAE3B,OAAO,EAAE,IAAI,EAAE,CAAA;AACjB,CAAC,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export { SpawnPointContext, SpawnPointProvider, useSpawnPointContext, type Spawn
|
|
|
5
5
|
export { UsersContext, UsersProvider, useUsers, type User, type UsersContextValue, } from './contexts/UsersContext';
|
|
6
6
|
export { TextInputContext, TextInputProvider, useTextInputContext, createDefaultTextInputImplementation, type TextInputContextValue, type TextInputRequest, } from './contexts/TextInputContext';
|
|
7
7
|
export { ConfirmContext, ConfirmProvider, useConfirmContext, createDefaultConfirmImplementation, type ConfirmContextValue, type ConfirmOptions, } from './contexts/ConfirmContext';
|
|
8
|
+
export { InstanceContext, InstanceProvider, useInstanceContext, createDefaultInstanceImplementation, type InstanceContextValue, type InstanceInfo, } from './contexts/InstanceContext';
|
|
9
|
+
export { WorldContext, WorldProvider, useWorldContext, createDefaultWorldImplementation, type WorldContextValue, type WorldInfo, } from './contexts/WorldContext';
|
|
8
10
|
export { TeleportContext, TeleportProvider, useTeleportContext, createDefaultTeleportImplementation, type TeleportContextValue, type TeleportDestination, } from './contexts/TeleportContext';
|
|
9
11
|
export { WorldEventContext, WorldEventProvider, useWorldEventContext, createDefaultWorldEventImplementation, type WorldEventContextValue, } from './contexts/WorldEventContext';
|
|
10
12
|
export { Interactable, type InteractableProps, } from './components/Interactable';
|
|
@@ -20,11 +22,14 @@ export { TagBoard, type TagBoardProps, type Tag, } from './components/TagBoard';
|
|
|
20
22
|
export { Video180Sphere, type Video180SphereProps, } from './components/Video180Sphere';
|
|
21
23
|
export { DevEnvironment, type DevEnvironmentProps, } from './components/DevEnvironment';
|
|
22
24
|
export { EntryLogBoard, type EntryLogBoardProps, } from './components/EntryLogBoard';
|
|
25
|
+
export { Portal, type PortalProps } from './components/Portal';
|
|
23
26
|
export { type PhysicsConfig } from './components/DevEnvironment/types';
|
|
24
27
|
export { useInstanceState } from './hooks/useInstanceState';
|
|
25
28
|
export { useSpawnPoint } from './hooks/useSpawnPoint';
|
|
26
29
|
export { useConfirm } from './hooks/useConfirm';
|
|
27
30
|
export { useTeleport } from './hooks/useTeleport';
|
|
31
|
+
export { useInstance } from './hooks/useInstance';
|
|
32
|
+
export { useWorld } from './hooks/useWorld';
|
|
28
33
|
export { useWebAudioVolume } from './hooks/useWebAudioVolume';
|
|
29
34
|
export { useWorldEvent } from './hooks/useWorldEvent';
|
|
30
35
|
export { LAYERS, type LayerName, type LayerNumber } from './constants/layers';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,8 @@ export { SpawnPointContext, SpawnPointProvider, useSpawnPointContext, } from './
|
|
|
6
6
|
export { UsersContext, UsersProvider, useUsers, } from './contexts/UsersContext';
|
|
7
7
|
export { TextInputContext, TextInputProvider, useTextInputContext, createDefaultTextInputImplementation, } from './contexts/TextInputContext';
|
|
8
8
|
export { ConfirmContext, ConfirmProvider, useConfirmContext, createDefaultConfirmImplementation, } from './contexts/ConfirmContext';
|
|
9
|
+
export { InstanceContext, InstanceProvider, useInstanceContext, createDefaultInstanceImplementation, } from './contexts/InstanceContext';
|
|
10
|
+
export { WorldContext, WorldProvider, useWorldContext, createDefaultWorldImplementation, } from './contexts/WorldContext';
|
|
9
11
|
export { TeleportContext, TeleportProvider, useTeleportContext, createDefaultTeleportImplementation, } from './contexts/TeleportContext';
|
|
10
12
|
export { WorldEventContext, WorldEventProvider, useWorldEventContext, createDefaultWorldEventImplementation, } from './contexts/WorldEventContext';
|
|
11
13
|
// Components
|
|
@@ -22,11 +24,14 @@ export { TagBoard, } from './components/TagBoard';
|
|
|
22
24
|
export { Video180Sphere, } from './components/Video180Sphere';
|
|
23
25
|
export { DevEnvironment, } from './components/DevEnvironment';
|
|
24
26
|
export { EntryLogBoard, } from './components/EntryLogBoard';
|
|
27
|
+
export { Portal } from './components/Portal';
|
|
25
28
|
// Hooks
|
|
26
29
|
export { useInstanceState } from './hooks/useInstanceState';
|
|
27
30
|
export { useSpawnPoint } from './hooks/useSpawnPoint';
|
|
28
31
|
export { useConfirm } from './hooks/useConfirm';
|
|
29
32
|
export { useTeleport } from './hooks/useTeleport';
|
|
33
|
+
export { useInstance } from './hooks/useInstance';
|
|
34
|
+
export { useWorld } from './hooks/useWorld';
|
|
30
35
|
export { useWebAudioVolume } from './hooks/useWebAudioVolume';
|
|
31
36
|
export { useWorldEvent } from './hooks/useWorldEvent';
|
|
32
37
|
// Constants
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAET,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GAExB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GAGrB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAGT,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,oCAAoC,GAGrC,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kCAAkC,GAGnC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mCAAmC,GAGpC,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qCAAqC,GAEtC,MAAM,8BAA8B,CAAA;AAErC,aAAa;AACb,OAAO,EACL,YAAY,GAEb,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EACL,WAAW,GAGZ,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAyB,MAAM,0BAA0B,CAAA;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EACL,kBAAkB,GAEnB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,UAAU,GAEX,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,SAAS,GAEV,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,QAAQ,GAGT,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAET,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GAExB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GAGrB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,GAGT,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,oCAAoC,GAGrC,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kCAAkC,GAGnC,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mCAAmC,GAGpC,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,EACf,gCAAgC,GAGjC,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,mCAAmC,GAGpC,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qCAAqC,GAEtC,MAAM,8BAA8B,CAAA;AAErC,aAAa;AACb,OAAO,EACL,YAAY,GAEb,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EACL,WAAW,GAGZ,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAyB,MAAM,0BAA0B,CAAA;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EACL,kBAAkB,GAEnB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,UAAU,GAEX,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,SAAS,GAEV,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,QAAQ,GAGT,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAA;AAI9D,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,YAAY;AACZ,OAAO,EAAE,MAAM,EAAoC,MAAM,oBAAoB,CAAA"}
|