@xrift/world-components 0.44.0 → 0.46.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/DevEnvironment/index.d.ts.map +1 -1
- package/dist/components/DevEnvironment/index.js +16 -1
- package/dist/components/DevEnvironment/index.js.map +1 -1
- package/dist/components/ScreenShareDisplay/hooks.d.ts +10 -0
- package/dist/components/ScreenShareDisplay/hooks.d.ts.map +1 -1
- package/dist/components/ScreenShareDisplay/hooks.js +41 -0
- package/dist/components/ScreenShareDisplay/hooks.js.map +1 -1
- package/dist/components/ScreenShareDisplay/index.d.ts +1 -1
- package/dist/components/ScreenShareDisplay/index.d.ts.map +1 -1
- package/dist/components/ScreenShareDisplay/index.js +5 -3
- package/dist/components/ScreenShareDisplay/index.js.map +1 -1
- package/dist/components/ScreenShareDisplay/types.d.ts +2 -0
- package/dist/components/ScreenShareDisplay/types.d.ts.map +1 -1
- package/dist/contexts/SharedFileContext.d.ts +5 -0
- package/dist/contexts/SharedFileContext.d.ts.map +1 -1
- package/dist/contexts/SharedFileContext.js +3 -0
- package/dist/contexts/SharedFileContext.js.map +1 -1
- package/dist/hooks/useSharedFile.d.ts +8 -3
- package/dist/hooks/useSharedFile.d.ts.map +1 -1
- package/dist/hooks/useSharedFile.js +10 -4
- package/dist/hooks/useSharedFile.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DevEnvironment/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DevEnvironment/index.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAqCpC,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAA;AAmBvC,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,MAAM,EACN,SAAsB,EACtB,OAAc,EACd,aAAsC,EACtC,gBAAsC,EACtC,aAAa,EACb,gBAAgB,EAAE,mBAAmB,GACtC,EAAE,KAAK,2CAoHP"}
|
|
@@ -6,6 +6,7 @@ import { Physics } from '@react-three/rapier';
|
|
|
6
6
|
import { GrabbableProvider } from '../../contexts/GrabbableContext';
|
|
7
7
|
import { SpawnPointProvider } from '../../contexts/SpawnPointContext';
|
|
8
8
|
import { UsersProvider } from '../../contexts/UsersContext';
|
|
9
|
+
import { XRiftContext } from '../../contexts/XRiftContext';
|
|
9
10
|
import { PCFShadowMap } from 'three';
|
|
10
11
|
import { toThreeOutputBufferType } from './utils';
|
|
11
12
|
import { DEFAULT_SPAWN_POSITION, DEFAULT_GRAVITY, DEFAULT_ALLOW_INFINITE_JUMP, DEFAULT_CAMERA_NEAR, DEFAULT_CAMERA_FAR, MOVE_SPEED, RESPAWN_Y_THRESHOLD, DEV_LOCAL_USER_ID, DEV_LOCAL_USER_DISPLAY_NAME, DEV_AVATAR_HEIGHT, DEV_EYE_HEIGHT, } from './constants';
|
|
@@ -66,6 +67,20 @@ export function DevEnvironment({ children, camera, moveSpeed = MOVE_SPEED, shado
|
|
|
66
67
|
getAvatarHeight: () => undefined,
|
|
67
68
|
getLocalAvatarHeight: () => DEV_LOCAL_AVATAR_HEIGHT,
|
|
68
69
|
}), []);
|
|
70
|
+
// Interactable の登録先(useXRift を使うコンポーネントを dev 環境で動かすため)
|
|
71
|
+
const [interactableObjects] = useState(() => new Set());
|
|
72
|
+
const registerInteractable = useCallback((object) => {
|
|
73
|
+
interactableObjects.add(object);
|
|
74
|
+
}, [interactableObjects]);
|
|
75
|
+
const unregisterInteractable = useCallback((object) => {
|
|
76
|
+
interactableObjects.delete(object);
|
|
77
|
+
}, [interactableObjects]);
|
|
78
|
+
const xriftContextValue = useMemo(() => ({
|
|
79
|
+
baseUrl: '/',
|
|
80
|
+
interactableObjects,
|
|
81
|
+
registerInteractable,
|
|
82
|
+
unregisterInteractable,
|
|
83
|
+
}), [interactableObjects, registerInteractable, unregisterInteractable]);
|
|
69
84
|
const gravity = physicsConfig?.gravity ?? DEFAULT_GRAVITY;
|
|
70
85
|
const allowInfiniteJump = physicsConfig?.allowInfiniteJump ?? DEFAULT_ALLOW_INFINITE_JUMP;
|
|
71
86
|
const outputBufferType = toThreeOutputBufferType(outputBufferTypeStr);
|
|
@@ -81,6 +96,6 @@ export function DevEnvironment({ children, camera, moveSpeed = MOVE_SPEED, shado
|
|
|
81
96
|
fov: cameraFov,
|
|
82
97
|
near: cameraNear,
|
|
83
98
|
far: cameraFar,
|
|
84
|
-
}, gl: glProps, children: [_jsx(PointerLockControls, {}), _jsx(CenterRaycaster, { onHitChange: handleHitChange }), _jsx(Physics, { gravity: [0, -gravity, 0], timeStep: "vary", children: _jsx(SpawnPointProvider, { children: _jsx(UsersProvider, { implementation: usersImplementation, children: _jsxs(GrabbableProvider, { implementation: grabStore.contextValue, children: [_jsx(PhysicsPlayer, { moveSpeed: moveSpeed, spawnPosition: spawnPosition, respawnThreshold: respawnThreshold, allowInfiniteJump: allowInfiniteJump, movementRef: localMovementRef }), _jsx(GrabSystem, { store: grabStore }), children] }) }) }) })] }), _jsx(Crosshair, { active: isHit }), _jsx(PointerLockStatus, { isLocked: isPointerLocked }), _jsx(ControlsHelp, {})] }));
|
|
99
|
+
}, gl: glProps, children: [_jsx(PointerLockControls, {}), _jsx(CenterRaycaster, { onHitChange: handleHitChange }), _jsx(Physics, { gravity: [0, -gravity, 0], timeStep: "vary", children: _jsx(XRiftContext.Provider, { value: xriftContextValue, children: _jsx(SpawnPointProvider, { children: _jsx(UsersProvider, { implementation: usersImplementation, children: _jsxs(GrabbableProvider, { implementation: grabStore.contextValue, children: [_jsx(PhysicsPlayer, { moveSpeed: moveSpeed, spawnPosition: spawnPosition, respawnThreshold: respawnThreshold, allowInfiniteJump: allowInfiniteJump, movementRef: localMovementRef }), _jsx(GrabSystem, { store: grabStore }), children] }) }) }) }) })] }), _jsx(Crosshair, { active: isHit }), _jsx(PointerLockStatus, { isLocked: isPointerLocked }), _jsx(ControlsHelp, {})] }));
|
|
85
100
|
}
|
|
86
101
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/DevEnvironment/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAE,aAAa,EAAqC,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/DevEnvironment/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,4 +10,14 @@ export declare const useVideoTexture: (videoElement: HTMLVideoElement | null, sc
|
|
|
10
10
|
hasVideo: boolean;
|
|
11
11
|
videoSize: [number, number];
|
|
12
12
|
};
|
|
13
|
+
/**
|
|
14
|
+
* 画像URLからプレースホルダー用のテクスチャを作成し管理するフック
|
|
15
|
+
* 読み込み失敗時は null を返す(呼び出し側でフォールバック表示する)
|
|
16
|
+
* @param imageUrl 画像のURL(省略時はテクスチャを作成しない)
|
|
17
|
+
* @param screenSize スクリーンのサイズ [幅, 高さ]
|
|
18
|
+
*/
|
|
19
|
+
export declare const usePlaceholderTexture: (imageUrl: string | undefined, screenSize: [number, number]) => {
|
|
20
|
+
placeholderTexture: THREE.Texture<unknown, THREE.TextureEventMap> | null;
|
|
21
|
+
placeholderSize: [number, number];
|
|
22
|
+
};
|
|
13
23
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,cAAc,gBAAgB,GAAG,IAAI,EACrC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,YAAY,MAAM;;;;CA6FnB,CAAA"}
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,cAAc,gBAAgB,GAAG,IAAI,EACrC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,YAAY,MAAM;;;;CA6FnB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,GAAG,SAAS,EAC5B,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;;;CAmD7B,CAAA"}
|
|
@@ -86,4 +86,45 @@ export const useVideoTexture = (videoElement, screenSize, targetFps) => {
|
|
|
86
86
|
}, [videoElement]);
|
|
87
87
|
return { texture, hasVideo, videoSize };
|
|
88
88
|
};
|
|
89
|
+
/**
|
|
90
|
+
* 画像URLからプレースホルダー用のテクスチャを作成し管理するフック
|
|
91
|
+
* 読み込み失敗時は null を返す(呼び出し側でフォールバック表示する)
|
|
92
|
+
* @param imageUrl 画像のURL(省略時はテクスチャを作成しない)
|
|
93
|
+
* @param screenSize スクリーンのサイズ [幅, 高さ]
|
|
94
|
+
*/
|
|
95
|
+
export const usePlaceholderTexture = (imageUrl, screenSize) => {
|
|
96
|
+
const [texture, setTexture] = useState(null);
|
|
97
|
+
useEffect(() => {
|
|
98
|
+
if (!imageUrl) {
|
|
99
|
+
setTexture(null);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const loader = new THREE.TextureLoader();
|
|
103
|
+
loader.setCrossOrigin('anonymous');
|
|
104
|
+
let cancelled = false;
|
|
105
|
+
loader.load(imageUrl, (loaded) => {
|
|
106
|
+
if (cancelled)
|
|
107
|
+
return;
|
|
108
|
+
loaded.colorSpace = THREE.SRGBColorSpace;
|
|
109
|
+
setTexture(loaded);
|
|
110
|
+
}, undefined, (err) => {
|
|
111
|
+
console.error('ScreenShareDisplay: placeholder image load failed', err);
|
|
112
|
+
});
|
|
113
|
+
return () => {
|
|
114
|
+
cancelled = true;
|
|
115
|
+
setTexture((prev) => {
|
|
116
|
+
prev?.dispose();
|
|
117
|
+
return null;
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
}, [imageUrl]);
|
|
121
|
+
// 画像サイズをスクリーン内に contain フィットさせる
|
|
122
|
+
const placeholderSize = useMemo(() => {
|
|
123
|
+
const image = texture?.image;
|
|
124
|
+
if (!image?.width || !image?.height)
|
|
125
|
+
return screenSize;
|
|
126
|
+
return calculateContainSize(image.width, image.height, screenSize[0], screenSize[1]);
|
|
127
|
+
}, [texture, screenSize]);
|
|
128
|
+
return { placeholderTexture: texture, placeholderSize };
|
|
129
|
+
};
|
|
89
130
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,5 @@ export type { Props as ScreenShareDisplayProps } from './types';
|
|
|
4
4
|
* 映像を3D空間内にスクリーンとして表示するコンポーネント
|
|
5
5
|
* 画面共有やカメラ映像などの表示に使用可能
|
|
6
6
|
*/
|
|
7
|
-
export declare const ScreenShareDisplay: import("react").MemoExoticComponent<({ id, position, rotation, width, targetFps, }: Props) => import("react/jsx-runtime").JSX.Element>;
|
|
7
|
+
export declare const ScreenShareDisplay: import("react").MemoExoticComponent<({ id, position, rotation, width, targetFps, placeholderImageUrl, }: Props) => import("react/jsx-runtime").JSX.Element>;
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,YAAY,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAO/D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,YAAY,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAO/D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2GAO5B,KAAK,6CAwEN,CAAA"}
|
|
@@ -4,7 +4,7 @@ import { memo, useCallback, useMemo } from 'react';
|
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import { useScreenShareContext } from '../../contexts/ScreenShareContext';
|
|
6
6
|
import { Interactable } from '../Interactable';
|
|
7
|
-
import { useVideoTexture } from './hooks';
|
|
7
|
+
import { usePlaceholderTexture, useVideoTexture } from './hooks';
|
|
8
8
|
// デフォルト値
|
|
9
9
|
const DEFAULT_WIDTH = 4;
|
|
10
10
|
const DEFAULT_POSITION = [0, 0, 0];
|
|
@@ -13,11 +13,13 @@ const DEFAULT_ROTATION = [0, 0, 0];
|
|
|
13
13
|
* 映像を3D空間内にスクリーンとして表示するコンポーネント
|
|
14
14
|
* 画面共有やカメラ映像などの表示に使用可能
|
|
15
15
|
*/
|
|
16
|
-
export const ScreenShareDisplay = memo(({ id, position = DEFAULT_POSITION, rotation = DEFAULT_ROTATION, width = DEFAULT_WIDTH, targetFps, }) => {
|
|
16
|
+
export const ScreenShareDisplay = memo(({ id, position = DEFAULT_POSITION, rotation = DEFAULT_ROTATION, width = DEFAULT_WIDTH, targetFps, placeholderImageUrl, }) => {
|
|
17
17
|
const { videoElement, isSharing, startScreenShare, stopScreenShare, isRoomConnected } = useScreenShareContext();
|
|
18
18
|
const interactionText = isSharing ? '画面共有を停止' : '画面共有を開始';
|
|
19
19
|
const screenSize = useMemo(() => [width, width * (9 / 16)], [width]);
|
|
20
20
|
const { texture, hasVideo, videoSize } = useVideoTexture(videoElement, screenSize, targetFps);
|
|
21
|
+
const { placeholderTexture, placeholderSize } = usePlaceholderTexture(placeholderImageUrl, screenSize);
|
|
22
|
+
const showPlaceholderImage = !hasVideo && placeholderTexture !== null;
|
|
21
23
|
const handleInteract = useCallback(() => {
|
|
22
24
|
if (isSharing) {
|
|
23
25
|
stopScreenShare();
|
|
@@ -26,6 +28,6 @@ export const ScreenShareDisplay = memo(({ id, position = DEFAULT_POSITION, rotat
|
|
|
26
28
|
startScreenShare();
|
|
27
29
|
}
|
|
28
30
|
}, [isSharing, startScreenShare, stopScreenShare]);
|
|
29
|
-
return (_jsxs("group", { position: position, rotation: rotation, children: [_jsxs(Interactable, { id: id, onInteract: handleInteract, interactionText: interactionText, children: [_jsxs("mesh", { visible: !hasVideo, children: [_jsx("planeGeometry", { args: [screenSize[0], screenSize[1]] }), _jsx("meshBasicMaterial", { side: THREE.FrontSide, toneMapped: false, color: "#1a1a2a" })] }), _jsxs("mesh", { visible: hasVideo, children: [_jsx("planeGeometry", { args: [videoSize[0], videoSize[1]] }), _jsx("meshBasicMaterial", { map: texture, side: THREE.FrontSide, toneMapped: false })] })] }), !hasVideo && (_jsx(Text, { position: [0, 0, 0.01], fontSize: width * 0.05, color: "#666666", anchorX: "center", anchorY: "middle", textAlign: "center", "material-side": THREE.FrontSide, children: isRoomConnected ? 'クリックして画面共有' : '音声通話に接続できていません' }))] }));
|
|
31
|
+
return (_jsxs("group", { position: position, rotation: rotation, children: [_jsxs(Interactable, { id: id, onInteract: handleInteract, interactionText: interactionText, children: [_jsxs("mesh", { visible: !hasVideo, children: [_jsx("planeGeometry", { args: [screenSize[0], screenSize[1]] }), _jsx("meshBasicMaterial", { side: THREE.FrontSide, toneMapped: false, color: "#1a1a2a", polygonOffset: true, polygonOffsetFactor: 1, polygonOffsetUnits: 1 })] }), _jsxs("mesh", { visible: showPlaceholderImage, children: [_jsx("planeGeometry", { args: [placeholderSize[0], placeholderSize[1]] }), _jsx("meshBasicMaterial", { map: placeholderTexture, side: THREE.FrontSide, toneMapped: false })] }), _jsxs("mesh", { visible: hasVideo, children: [_jsx("planeGeometry", { args: [videoSize[0], videoSize[1]] }), _jsx("meshBasicMaterial", { map: texture, side: THREE.FrontSide, toneMapped: false })] })] }), !hasVideo && !showPlaceholderImage && (_jsx(Text, { position: [0, 0, 0.01], fontSize: width * 0.05, color: "#666666", anchorX: "center", anchorY: "middle", textAlign: "center", "material-side": THREE.FrontSide, children: isRoomConnected ? 'クリックして画面共有' : '音声通話に接続できていません' }))] }));
|
|
30
32
|
});
|
|
31
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ScreenShareDisplay/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B"}
|
|
@@ -52,6 +52,11 @@ export interface SharedFileContextValue {
|
|
|
52
52
|
* ロック中のファイルは更新できない(先にロック解除が必要)
|
|
53
53
|
*/
|
|
54
54
|
updateSharedFile: (fileId: string, updates: UpdateSharedFileParams) => Promise<SharedFileInfo>;
|
|
55
|
+
/**
|
|
56
|
+
* 共有ファイルを削除する
|
|
57
|
+
* ロック中のファイルは削除できない(先にロック解除が必要)
|
|
58
|
+
*/
|
|
59
|
+
deleteSharedFile: (fileId: string) => Promise<void>;
|
|
55
60
|
}
|
|
56
61
|
/**
|
|
57
62
|
* デフォルトの実装(開発環境用)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedFileContext.d.ts","sourceRoot":"","sources":["../../src/contexts/SharedFileContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IACvC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,gBAAgB,EAAE,CAChB,IAAI,EAAE,IAAI,EACV,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,OAAO,CAAC,EAAE,uBAAuB,KAC9B,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5B;;OAEG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC/C;;OAEG;IACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;IAC/E;;;OAGG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"SharedFileContext.d.ts","sourceRoot":"","sources":["../../src/contexts/SharedFileContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IACvC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,gBAAgB,EAAE,CAChB,IAAI,EAAE,IAAI,EACV,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,OAAO,CAAC,EAAE,uBAAuB,KAC9B,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5B;;OAEG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC/C;;OAEG;IACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;IAC/E;;;OAGG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9F;;;OAGG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AAED;;;GAGG;AACH,eAAO,MAAM,qCAAqC,QAAO,sBAkDvD,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,wDAAqD,CAAA;AAEnF,UAAU,KAAK;IACb,KAAK,EAAE,sBAAsB,CAAA;IAC7B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,qBAAqB,KAAK,4CAE5D,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,QAAO,sBAQvC,CAAA"}
|
|
@@ -51,6 +51,9 @@ export const createDefaultSharedFileImplementation = () => ({
|
|
|
51
51
|
createdAt: new Date().toISOString(),
|
|
52
52
|
};
|
|
53
53
|
},
|
|
54
|
+
deleteSharedFile: async (fileId) => {
|
|
55
|
+
console.log('[SharedFile] deleteSharedFile called:', fileId);
|
|
56
|
+
},
|
|
54
57
|
});
|
|
55
58
|
/**
|
|
56
59
|
* 共有ファイルのContext
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedFileContext.js","sourceRoot":"","sources":["../../src/contexts/SharedFileContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"SharedFileContext.js","sourceRoot":"","sources":["../../src/contexts/SharedFileContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type SharedFileContextValue } from '../contexts/SharedFileContext';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* 共有ファイルのアップロード・一覧取得・ロック操作・情報更新・削除を行うhook
|
|
4
4
|
* ワールド作成者が3D空間内から共有ファイルを操作するために使用
|
|
5
5
|
*
|
|
6
6
|
* @example
|
|
7
|
-
* const { uploadSharedFile, getSharedFiles, setSharedFileLock, updateSharedFile } = useSharedFile()
|
|
7
|
+
* const { uploadSharedFile, getSharedFiles, setSharedFileLock, updateSharedFile, deleteSharedFile } = useSharedFile()
|
|
8
8
|
*
|
|
9
9
|
* const handleUpload = async (file: File) => {
|
|
10
10
|
* // アップロード時に説明文・メタデータを付与できる
|
|
@@ -21,12 +21,17 @@ import { type SharedFileContextValue } from '../contexts/SharedFileContext';
|
|
|
21
21
|
* // 説明文・メタデータの更新(null でクリア)
|
|
22
22
|
* await updateSharedFile(fileId, { description: '展示品B', metadata: null })
|
|
23
23
|
*
|
|
24
|
-
*
|
|
24
|
+
* // 削除(ロック中は先に解除が必要)
|
|
25
|
+
* await setSharedFileLock(fileId, false)
|
|
26
|
+
* await deleteSharedFile(fileId)
|
|
27
|
+
*
|
|
28
|
+
* @returns {{ uploadSharedFile, getSharedFiles, setSharedFileLock, updateSharedFile, deleteSharedFile }}
|
|
25
29
|
*/
|
|
26
30
|
export declare const useSharedFile: () => {
|
|
27
31
|
uploadSharedFile: SharedFileContextValue["uploadSharedFile"];
|
|
28
32
|
getSharedFiles: SharedFileContextValue["getSharedFiles"];
|
|
29
33
|
setSharedFileLock: SharedFileContextValue["setSharedFileLock"];
|
|
30
34
|
updateSharedFile: SharedFileContextValue["updateSharedFile"];
|
|
35
|
+
deleteSharedFile: SharedFileContextValue["deleteSharedFile"];
|
|
31
36
|
};
|
|
32
37
|
//# sourceMappingURL=useSharedFile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSharedFile.d.ts","sourceRoot":"","sources":["../../src/hooks/useSharedFile.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,sBAAsB,EAI5B,MAAM,+BAA+B,CAAA;AAEtC
|
|
1
|
+
{"version":3,"file":"useSharedFile.d.ts","sourceRoot":"","sources":["../../src/hooks/useSharedFile.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,sBAAsB,EAI5B,MAAM,+BAA+B,CAAA;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,aAAa,QAAO;IAC/B,gBAAgB,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAA;IAC5D,cAAc,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAA;IACxD,iBAAiB,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,CAAA;IAC9D,gBAAgB,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAA;IAC5D,gBAAgB,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAA;CAmC7D,CAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useCallback } from 'react';
|
|
2
2
|
import { useSharedFileContext, } from '../contexts/SharedFileContext';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* 共有ファイルのアップロード・一覧取得・ロック操作・情報更新・削除を行うhook
|
|
5
5
|
* ワールド作成者が3D空間内から共有ファイルを操作するために使用
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
|
-
* const { uploadSharedFile, getSharedFiles, setSharedFileLock, updateSharedFile } = useSharedFile()
|
|
8
|
+
* const { uploadSharedFile, getSharedFiles, setSharedFileLock, updateSharedFile, deleteSharedFile } = useSharedFile()
|
|
9
9
|
*
|
|
10
10
|
* const handleUpload = async (file: File) => {
|
|
11
11
|
* // アップロード時に説明文・メタデータを付与できる
|
|
@@ -22,19 +22,25 @@ import { useSharedFileContext, } from '../contexts/SharedFileContext';
|
|
|
22
22
|
* // 説明文・メタデータの更新(null でクリア)
|
|
23
23
|
* await updateSharedFile(fileId, { description: '展示品B', metadata: null })
|
|
24
24
|
*
|
|
25
|
-
*
|
|
25
|
+
* // 削除(ロック中は先に解除が必要)
|
|
26
|
+
* await setSharedFileLock(fileId, false)
|
|
27
|
+
* await deleteSharedFile(fileId)
|
|
28
|
+
*
|
|
29
|
+
* @returns {{ uploadSharedFile, getSharedFiles, setSharedFileLock, updateSharedFile, deleteSharedFile }}
|
|
26
30
|
*/
|
|
27
31
|
export const useSharedFile = () => {
|
|
28
|
-
const { uploadSharedFile, getSharedFiles, setSharedFileLock, updateSharedFile } = useSharedFileContext();
|
|
32
|
+
const { uploadSharedFile, getSharedFiles, setSharedFileLock, updateSharedFile, deleteSharedFile } = useSharedFileContext();
|
|
29
33
|
const stableUploadSharedFile = useCallback((file, onProgress, options) => uploadSharedFile(file, onProgress, options), [uploadSharedFile]);
|
|
30
34
|
const stableGetSharedFiles = useCallback(() => getSharedFiles(), [getSharedFiles]);
|
|
31
35
|
const stableSetSharedFileLock = useCallback((fileId, locked) => setSharedFileLock(fileId, locked), [setSharedFileLock]);
|
|
32
36
|
const stableUpdateSharedFile = useCallback((fileId, updates) => updateSharedFile(fileId, updates), [updateSharedFile]);
|
|
37
|
+
const stableDeleteSharedFile = useCallback((fileId) => deleteSharedFile(fileId), [deleteSharedFile]);
|
|
33
38
|
return {
|
|
34
39
|
uploadSharedFile: stableUploadSharedFile,
|
|
35
40
|
getSharedFiles: stableGetSharedFiles,
|
|
36
41
|
setSharedFileLock: stableSetSharedFileLock,
|
|
37
42
|
updateSharedFile: stableUpdateSharedFile,
|
|
43
|
+
deleteSharedFile: stableDeleteSharedFile,
|
|
38
44
|
};
|
|
39
45
|
};
|
|
40
46
|
//# sourceMappingURL=useSharedFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSharedFile.js","sourceRoot":"","sources":["../../src/hooks/useSharedFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAIL,oBAAoB,GACrB,MAAM,+BAA+B,CAAA;AAEtC
|
|
1
|
+
{"version":3,"file":"useSharedFile.js","sourceRoot":"","sources":["../../src/hooks/useSharedFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAIL,oBAAoB,GACrB,MAAM,+BAA+B,CAAA;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAM3B,EAAE;IACF,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAC/F,oBAAoB,EAAE,CAAA;IAExB,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,IAAU,EAAE,UAAuC,EAAE,OAAiC,EAAE,EAAE,CACzF,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAC7C,CAAC,gBAAgB,CAAC,CACnB,CAAA;IAED,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IAElF,MAAM,uBAAuB,GAAG,WAAW,CACzC,CAAC,MAAc,EAAE,MAAe,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,EACtE,CAAC,iBAAiB,CAAC,CACpB,CAAA;IAED,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,MAAc,EAAE,OAA+B,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,EACtF,CAAC,gBAAgB,CAAC,CACnB,CAAA;IAED,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,MAAc,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAC5C,CAAC,gBAAgB,CAAC,CACnB,CAAA;IAED,OAAO;QACL,gBAAgB,EAAE,sBAAsB;QACxC,cAAc,EAAE,oBAAoB;QACpC,iBAAiB,EAAE,uBAAuB;QAC1C,gBAAgB,EAAE,sBAAsB;QACxC,gBAAgB,EAAE,sBAAsB;KACzC,CAAA;AACH,CAAC,CAAA"}
|