@xrift/world-components 0.37.1 → 0.39.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/contexts/FileInputContext.d.ts +79 -0
- package/dist/contexts/FileInputContext.d.ts.map +1 -0
- package/dist/contexts/FileInputContext.js +69 -0
- package/dist/contexts/FileInputContext.js.map +1 -0
- package/dist/contexts/SharedFileContext.d.ts +55 -0
- package/dist/contexts/SharedFileContext.d.ts.map +1 -0
- package/dist/contexts/SharedFileContext.js +51 -0
- package/dist/contexts/SharedFileContext.js.map +1 -0
- package/dist/contexts/XRiftContext.d.ts +15 -3
- package/dist/contexts/XRiftContext.d.ts.map +1 -1
- package/dist/contexts/XRiftContext.js +31 -2
- package/dist/contexts/XRiftContext.js.map +1 -1
- package/dist/hooks/useFileInput.d.ts +23 -0
- package/dist/hooks/useFileInput.d.ts.map +1 -0
- package/dist/hooks/useFileInput.js +28 -0
- package/dist/hooks/useFileInput.js.map +1 -0
- package/dist/hooks/useSharedFile.d.ts +22 -0
- package/dist/hooks/useSharedFile.d.ts.map +1 -0
- package/dist/hooks/useSharedFile.js +25 -0
- package/dist/hooks/useSharedFile.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* ファイル入力のエラー種別
|
|
4
|
+
*/
|
|
5
|
+
export type FileInputErrorType = 'file_too_large' | 'invalid_type';
|
|
6
|
+
/**
|
|
7
|
+
* ファイル入力のエラー情報
|
|
8
|
+
*/
|
|
9
|
+
export interface FileInputError {
|
|
10
|
+
type: FileInputErrorType;
|
|
11
|
+
message: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ファイル入力のリクエスト情報
|
|
15
|
+
*/
|
|
16
|
+
export interface FileInputRequest {
|
|
17
|
+
/** 入力の一意なID */
|
|
18
|
+
id: string;
|
|
19
|
+
/** 受け入れるファイルタイプ(例: '.vrm', 'image/*') */
|
|
20
|
+
accept?: string;
|
|
21
|
+
/** 複数ファイル選択を許可するか */
|
|
22
|
+
multiple?: boolean;
|
|
23
|
+
/** 最大ファイルサイズ(バイト単位) */
|
|
24
|
+
maxSize?: number;
|
|
25
|
+
/** ファイル選択完了時のコールバック */
|
|
26
|
+
onSelect: (files: File[]) => void;
|
|
27
|
+
/** キャンセル時のコールバック */
|
|
28
|
+
onCancel?: () => void;
|
|
29
|
+
/** エラー時のコールバック */
|
|
30
|
+
onError?: (error: FileInputError) => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* ファイル入力のContext値
|
|
34
|
+
*/
|
|
35
|
+
export interface FileInputContextValue {
|
|
36
|
+
/**
|
|
37
|
+
* ファイル選択ダイアログを表示する
|
|
38
|
+
* xrift-frontend側でオーバーレイUIを表示し、ファイル選択後にonSelectが呼ばれる
|
|
39
|
+
*/
|
|
40
|
+
requestFileInput: (request: FileInputRequest) => void;
|
|
41
|
+
/**
|
|
42
|
+
* 現在アクティブなファイル入力があるか
|
|
43
|
+
*/
|
|
44
|
+
isActive: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* デフォルトの実装(開発環境用)
|
|
48
|
+
* 動的にinput[type=file]を作成してファイル選択する
|
|
49
|
+
*/
|
|
50
|
+
export declare const createDefaultFileInputImplementation: () => FileInputContextValue;
|
|
51
|
+
/**
|
|
52
|
+
* ファイル入力のContext
|
|
53
|
+
*/
|
|
54
|
+
export declare const FileInputContext: import("react").Context<FileInputContextValue | null>;
|
|
55
|
+
interface Props {
|
|
56
|
+
value: FileInputContextValue;
|
|
57
|
+
children: ReactNode;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* ファイル入力のContextProvider
|
|
61
|
+
*/
|
|
62
|
+
export declare const FileInputProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
63
|
+
/**
|
|
64
|
+
* ファイル入力の機能を取得するhook
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* const { requestFileInput } = useFileInputContext()
|
|
68
|
+
* requestFileInput({
|
|
69
|
+
* id: 'avatar-upload',
|
|
70
|
+
* accept: '.vrm',
|
|
71
|
+
* maxSize: 30 * 1024 * 1024,
|
|
72
|
+
* onSelect: (files) => console.log('選択されたファイル:', files),
|
|
73
|
+
* })
|
|
74
|
+
*
|
|
75
|
+
* @throws {Error} FileInputProvider の外で呼び出された場合
|
|
76
|
+
*/
|
|
77
|
+
export declare const useFileInputContext: () => FileInputContextValue;
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=FileInputContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileInputContext.d.ts","sourceRoot":"","sources":["../../src/contexts/FileInputContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,cAAc,CAAA;AAElE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,EAAE,EAAE,MAAM,CAAA;IACV,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uBAAuB;IACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAA;IACjC,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,kBAAkB;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACrD;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,oCAAoC,QAAO,qBA8BtD,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,uDAAoD,CAAA;AAEjF,UAAU,KAAK;IACb,KAAK,EAAE,qBAAqB,CAAA;IAC5B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,qBAAqB,KAAK,4CAE3D,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,QAAO,qBAQtC,CAAA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* デフォルトの実装(開発環境用)
|
|
5
|
+
* 動的にinput[type=file]を作成してファイル選択する
|
|
6
|
+
*/
|
|
7
|
+
export const createDefaultFileInputImplementation = () => ({
|
|
8
|
+
requestFileInput: (request) => {
|
|
9
|
+
console.log('[FileInput] requestFileInput called:', request);
|
|
10
|
+
const input = document.createElement('input');
|
|
11
|
+
input.type = 'file';
|
|
12
|
+
if (request.accept)
|
|
13
|
+
input.accept = request.accept;
|
|
14
|
+
if (request.multiple)
|
|
15
|
+
input.multiple = true;
|
|
16
|
+
input.addEventListener('change', () => {
|
|
17
|
+
const files = Array.from(input.files ?? []);
|
|
18
|
+
if (files.length === 0) {
|
|
19
|
+
request.onCancel?.();
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (request.maxSize) {
|
|
23
|
+
const oversized = files.find((f) => f.size > request.maxSize);
|
|
24
|
+
if (oversized) {
|
|
25
|
+
request.onError?.({
|
|
26
|
+
type: 'file_too_large',
|
|
27
|
+
message: `File "${oversized.name}" exceeds max size of ${request.maxSize} bytes`,
|
|
28
|
+
});
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
request.onSelect(files);
|
|
33
|
+
});
|
|
34
|
+
input.click();
|
|
35
|
+
},
|
|
36
|
+
isActive: false,
|
|
37
|
+
});
|
|
38
|
+
/**
|
|
39
|
+
* ファイル入力のContext
|
|
40
|
+
*/
|
|
41
|
+
export const FileInputContext = createContext(null);
|
|
42
|
+
/**
|
|
43
|
+
* ファイル入力のContextProvider
|
|
44
|
+
*/
|
|
45
|
+
export const FileInputProvider = ({ value, children }) => {
|
|
46
|
+
return _jsx(FileInputContext.Provider, { value: value, children: children });
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* ファイル入力の機能を取得するhook
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* const { requestFileInput } = useFileInputContext()
|
|
53
|
+
* requestFileInput({
|
|
54
|
+
* id: 'avatar-upload',
|
|
55
|
+
* accept: '.vrm',
|
|
56
|
+
* maxSize: 30 * 1024 * 1024,
|
|
57
|
+
* onSelect: (files) => console.log('選択されたファイル:', files),
|
|
58
|
+
* })
|
|
59
|
+
*
|
|
60
|
+
* @throws {Error} FileInputProvider の外で呼び出された場合
|
|
61
|
+
*/
|
|
62
|
+
export const useFileInputContext = () => {
|
|
63
|
+
const context = useContext(FileInputContext);
|
|
64
|
+
if (!context) {
|
|
65
|
+
throw new Error('useFileInputContext must be used within FileInputProvider');
|
|
66
|
+
}
|
|
67
|
+
return context;
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=FileInputContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileInputContext.js","sourceRoot":"","sources":["../../src/contexts/FileInputContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAA;AAkDjE;;;GAGG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAA0B,EAAE,CAAC,CAAC;IAChF,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,OAAO,CAAC,CAAA;QAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC7C,KAAK,CAAC,IAAI,GAAG,MAAM,CAAA;QACnB,IAAI,OAAO,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QACjD,IAAI,OAAO,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;QAE3C,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YACpC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;YAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAA;gBACpB,OAAM;YACR,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,OAAQ,CAAC,CAAA;gBAC9D,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC,OAAO,EAAE,CAAC;wBAChB,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,SAAS,SAAS,CAAC,IAAI,yBAAyB,OAAO,CAAC,OAAO,QAAQ;qBACjF,CAAC,CAAA;oBACF,OAAM;gBACR,CAAC;YACH,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,KAAK,CAAC,KAAK,EAAE,CAAA;IACf,CAAC;IACD,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAA+B,IAAI,CAAC,CAAA;AAOjF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAS,EAAE,EAAE;IAC9D,OAAO,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA6B,CAAA;AACxF,CAAC,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAA0B,EAAE;IAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAC9E,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* 共有ファイルの情報
|
|
4
|
+
*/
|
|
5
|
+
export interface SharedFileInfo {
|
|
6
|
+
id: string;
|
|
7
|
+
fileName: string;
|
|
8
|
+
contentType: string;
|
|
9
|
+
fileSize: number;
|
|
10
|
+
publicUrl: string;
|
|
11
|
+
createdAt: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 共有ファイルのContext値
|
|
15
|
+
*/
|
|
16
|
+
export interface SharedFileContextValue {
|
|
17
|
+
/**
|
|
18
|
+
* ファイルをアップロードし、結果を返す
|
|
19
|
+
*/
|
|
20
|
+
uploadSharedFile: (file: File, onProgress?: (progress: number) => void) => Promise<SharedFileInfo>;
|
|
21
|
+
/**
|
|
22
|
+
* 共有ファイル一覧を取得する
|
|
23
|
+
*/
|
|
24
|
+
getSharedFiles: () => Promise<SharedFileInfo[]>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* デフォルトの実装(開発環境用)
|
|
28
|
+
* console.log + ダミーデータを返す
|
|
29
|
+
*/
|
|
30
|
+
export declare const createDefaultSharedFileImplementation: () => SharedFileContextValue;
|
|
31
|
+
/**
|
|
32
|
+
* 共有ファイルのContext
|
|
33
|
+
*/
|
|
34
|
+
export declare const SharedFileContext: import("react").Context<SharedFileContextValue | null>;
|
|
35
|
+
interface Props {
|
|
36
|
+
value: SharedFileContextValue;
|
|
37
|
+
children: ReactNode;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 共有ファイルのContextProvider
|
|
41
|
+
*/
|
|
42
|
+
export declare const SharedFileProvider: ({ value, children }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
/**
|
|
44
|
+
* 共有ファイルの機能を取得するhook
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* const { uploadSharedFile, getSharedFiles } = useSharedFileContext()
|
|
48
|
+
* const result = await uploadSharedFile(file, (progress) => console.log(progress))
|
|
49
|
+
* console.log('URL:', result.publicUrl)
|
|
50
|
+
*
|
|
51
|
+
* @throws {Error} SharedFileProvider の外で呼び出された場合
|
|
52
|
+
*/
|
|
53
|
+
export declare const useSharedFileContext: () => SharedFileContextValue;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=SharedFileContext.d.ts.map
|
|
@@ -0,0 +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,SAAS,EAAE,MAAM,CAAA;CAClB;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,KACpC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5B;;OAEG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;CAChD;AAED;;;GAGG;AACH,eAAO,MAAM,qCAAqC,QAAO,sBAgBvD,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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* デフォルトの実装(開発環境用)
|
|
5
|
+
* console.log + ダミーデータを返す
|
|
6
|
+
*/
|
|
7
|
+
export const createDefaultSharedFileImplementation = () => ({
|
|
8
|
+
uploadSharedFile: async (file) => {
|
|
9
|
+
console.log('[SharedFile] uploadSharedFile called:', file.name);
|
|
10
|
+
return {
|
|
11
|
+
id: 'dummy-id',
|
|
12
|
+
fileName: file.name,
|
|
13
|
+
contentType: file.type,
|
|
14
|
+
fileSize: file.size,
|
|
15
|
+
publicUrl: `https://example.com/shared/${file.name}`,
|
|
16
|
+
createdAt: new Date().toISOString(),
|
|
17
|
+
};
|
|
18
|
+
},
|
|
19
|
+
getSharedFiles: async () => {
|
|
20
|
+
console.log('[SharedFile] getSharedFiles called');
|
|
21
|
+
return [];
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* 共有ファイルのContext
|
|
26
|
+
*/
|
|
27
|
+
export const SharedFileContext = createContext(null);
|
|
28
|
+
/**
|
|
29
|
+
* 共有ファイルのContextProvider
|
|
30
|
+
*/
|
|
31
|
+
export const SharedFileProvider = ({ value, children }) => {
|
|
32
|
+
return _jsx(SharedFileContext.Provider, { value: value, children: children });
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* 共有ファイルの機能を取得するhook
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* const { uploadSharedFile, getSharedFiles } = useSharedFileContext()
|
|
39
|
+
* const result = await uploadSharedFile(file, (progress) => console.log(progress))
|
|
40
|
+
* console.log('URL:', result.publicUrl)
|
|
41
|
+
*
|
|
42
|
+
* @throws {Error} SharedFileProvider の外で呼び出された場合
|
|
43
|
+
*/
|
|
44
|
+
export const useSharedFileContext = () => {
|
|
45
|
+
const context = useContext(SharedFileContext);
|
|
46
|
+
if (!context) {
|
|
47
|
+
throw new Error('useSharedFileContext must be used within SharedFileProvider');
|
|
48
|
+
}
|
|
49
|
+
return context;
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=SharedFileContext.js.map
|
|
@@ -0,0 +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;AA+BjE;;;GAGG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAA2B,EAAE,CAAC,CAAC;IAClF,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/D,OAAO;YACL,EAAE,EAAE,UAAU;YACd,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,SAAS,EAAE,8BAA8B,IAAI,CAAC,IAAI,EAAE;YACpD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAA;IACH,CAAC;IACD,cAAc,EAAE,KAAK,IAAI,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;QACjD,OAAO,EAAE,CAAA;IACX,CAAC;CACF,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAgC,IAAI,CAAC,CAAA;AAOnF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAS,EAAE,EAAE;IAC/D,OAAO,KAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA8B,CAAA;AAC1F,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAA2B,EAAE;IAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IAChF,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ReactNode } from 'react';
|
|
1
|
+
import React, { type ReactNode } from 'react';
|
|
2
2
|
import type { Object3D } from 'three';
|
|
3
3
|
import { type InstanceStateContextValue } from './InstanceStateContext';
|
|
4
4
|
import { type ScreenShareContextValue } from './ScreenShareContext';
|
|
@@ -8,10 +8,12 @@ import { type InstanceContextValue } from './InstanceContext';
|
|
|
8
8
|
import { type WorldContextValue } from './WorldContext';
|
|
9
9
|
import { type TeleportContextValue } from './TeleportContext';
|
|
10
10
|
import { type TextInputContextValue } from './TextInputContext';
|
|
11
|
+
import { type FileInputContextValue } from './FileInputContext';
|
|
11
12
|
import { type UsersContextValue } from './UsersContext';
|
|
12
13
|
import { type InstanceEventContextValue } from './InstanceEventContext';
|
|
13
14
|
import { type PlacementMode } from './PlacementStateContext';
|
|
14
15
|
import { type AudioVolumeContextValue } from './AudioVolumeContext';
|
|
16
|
+
import { type SharedFileContextValue } from './SharedFileContext';
|
|
15
17
|
export interface XRiftContextValue {
|
|
16
18
|
/**
|
|
17
19
|
* ワールドのベースURL(CDNのディレクトリパス)
|
|
@@ -36,7 +38,7 @@ export interface XRiftContextValue {
|
|
|
36
38
|
* XRift ワールドの情報を提供するContext
|
|
37
39
|
* ワールド側でこのContextを直接参照して情報を取得できる
|
|
38
40
|
*/
|
|
39
|
-
export declare const XRiftContext:
|
|
41
|
+
export declare const XRiftContext: React.Context<XRiftContextValue | null>;
|
|
40
42
|
interface Props {
|
|
41
43
|
baseUrl: string;
|
|
42
44
|
/**
|
|
@@ -94,6 +96,16 @@ interface Props {
|
|
|
94
96
|
* 指定しない場合はデフォルト実装(no-op)が使用される
|
|
95
97
|
*/
|
|
96
98
|
audioVolumeImplementation?: AudioVolumeContextValue;
|
|
99
|
+
/**
|
|
100
|
+
* ファイル入力の実装(オプション)
|
|
101
|
+
* 指定しない場合はデフォルト実装(ブラウザのファイル選択)が使用される
|
|
102
|
+
*/
|
|
103
|
+
fileInputImplementation?: FileInputContextValue;
|
|
104
|
+
/**
|
|
105
|
+
* 共有ファイルの実装(オプション)
|
|
106
|
+
* 指定しない場合はデフォルト実装(console.log)が使用される
|
|
107
|
+
*/
|
|
108
|
+
sharedFileImplementation?: SharedFileContextValue;
|
|
97
109
|
/**
|
|
98
110
|
* アイテムの配置状態(オプション)
|
|
99
111
|
* 'preview': プレビュー中、'placed': 設置済み
|
|
@@ -107,7 +119,7 @@ interface Props {
|
|
|
107
119
|
* Module Federationで動的にロードされたワールドコンポーネントに
|
|
108
120
|
* 必要な情報を注入するために使用
|
|
109
121
|
*/
|
|
110
|
-
export declare const XRiftProvider: ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, placementMode, children, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
122
|
+
export declare const XRiftProvider: ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, fileInputImplementation, sharedFileImplementation, placementMode, children, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
111
123
|
/**
|
|
112
124
|
* XRift ワールドの情報を取得するhook
|
|
113
125
|
* ワールドプロジェクト側でアセットの相対パスを絶対パスに変換する際に使用
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"XRiftContext.d.ts","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAiB,KAAK,SAAS,EAA8C,MAAM,OAAO,CAAA;AACxG,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,EAGL,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACpF,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAA;AAC7B,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,yCAAgD,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,2BAA2B,CAAC,EAAE,yBAAyB,CAAA;IACvD;;;OAGG;IACH,yBAAyB,CAAC,EAAE,uBAAuB,CAAA;IACnD;;;OAGG;IACH,uBAAuB,CAAC,EAAE,qBAAqB,CAAA;IAC/C;;;OAGG;IACH,wBAAwB,CAAC,EAAE,sBAAsB,CAAA;IACjD;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAeD;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,8WAiB3B,KAAK,4CA0GP,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,QAAO,iBAQ3B,CAAA"}
|
|
@@ -8,10 +8,12 @@ import { InstanceProvider, createDefaultInstanceImplementation, } from './Instan
|
|
|
8
8
|
import { WorldProvider, createDefaultWorldImplementation, } from './WorldContext';
|
|
9
9
|
import { TeleportProvider, createDefaultTeleportImplementation, } from './TeleportContext';
|
|
10
10
|
import { TextInputProvider, createDefaultTextInputImplementation, } from './TextInputContext';
|
|
11
|
+
import { FileInputProvider, createDefaultFileInputImplementation, } from './FileInputContext';
|
|
11
12
|
import { UsersProvider } from './UsersContext';
|
|
12
13
|
import { InstanceEventProvider, createDefaultInstanceEventImplementation, } from './InstanceEventContext';
|
|
13
14
|
import { PlacementStateProvider } from './PlacementStateContext';
|
|
14
15
|
import { AudioVolumeProvider, createDefaultAudioVolumeImplementation, } from './AudioVolumeContext';
|
|
16
|
+
import { SharedFileProvider, createDefaultSharedFileImplementation, } from './SharedFileContext';
|
|
15
17
|
// デフォルトの画面共有実装(開発環境用)
|
|
16
18
|
const createDefaultScreenShareImplementation = () => ({
|
|
17
19
|
videoElement: null,
|
|
@@ -25,12 +27,17 @@ const createDefaultScreenShareImplementation = () => ({
|
|
|
25
27
|
* ワールド側でこのContextを直接参照して情報を取得できる
|
|
26
28
|
*/
|
|
27
29
|
export const XRiftContext = createContext(null);
|
|
30
|
+
/**
|
|
31
|
+
* Provider の配列を合成して単一のラッパーを返す
|
|
32
|
+
* 波動拳ネストを平坦なリストに変換する
|
|
33
|
+
*/
|
|
34
|
+
const composeProviders = (providers, children) => providers.reduceRight((acc, [Provider, props]) => _jsx(Provider, { ...props, children: acc }), children);
|
|
28
35
|
/**
|
|
29
36
|
* XRift ワールドの情報を提供するContextProvider
|
|
30
37
|
* Module Federationで動的にロードされたワールドコンポーネントに
|
|
31
38
|
* 必要な情報を注入するために使用
|
|
32
39
|
*/
|
|
33
|
-
export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, placementMode, children, }) => {
|
|
40
|
+
export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImplementation, instanceImplementation, screenShareImplementation, spawnPointImplementation, teleportImplementation, textInputImplementation, usersImplementation, worldImplementation, instanceEventImplementation, audioVolumeImplementation, fileInputImplementation, sharedFileImplementation, placementMode, children, }) => {
|
|
34
41
|
// インタラクト可能なオブジェクトの管理
|
|
35
42
|
const [interactableObjects] = useState(() => new Set());
|
|
36
43
|
// 画面共有の実装(指定がない場合はデフォルト実装を使用)
|
|
@@ -49,6 +56,10 @@ export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImp
|
|
|
49
56
|
const instanceEventImpl = useMemo(() => instanceEventImplementation ?? createDefaultInstanceEventImplementation(), [instanceEventImplementation]);
|
|
50
57
|
// 音量オーバーライドの実装(指定がない場合はデフォルト実装を使用)
|
|
51
58
|
const audioVolumeImpl = useMemo(() => audioVolumeImplementation ?? createDefaultAudioVolumeImplementation(), [audioVolumeImplementation]);
|
|
59
|
+
// ファイル入力の実装(指定がない場合はデフォルト実装を使用)
|
|
60
|
+
const fileInputImpl = useMemo(() => fileInputImplementation ?? createDefaultFileInputImplementation(), [fileInputImplementation]);
|
|
61
|
+
// 共有ファイルの実装(指定がない場合はデフォルト実装を使用)
|
|
62
|
+
const sharedFileImpl = useMemo(() => sharedFileImplementation ?? createDefaultSharedFileImplementation(), [sharedFileImplementation]);
|
|
52
63
|
// オブジェクトの登録
|
|
53
64
|
const registerInteractable = useCallback((object) => {
|
|
54
65
|
interactableObjects.add(object);
|
|
@@ -63,7 +74,25 @@ export const XRiftProvider = ({ baseUrl, confirmImplementation, instanceStateImp
|
|
|
63
74
|
registerInteractable,
|
|
64
75
|
unregisterInteractable,
|
|
65
76
|
}), [baseUrl, interactableObjects, registerInteractable, unregisterInteractable]);
|
|
66
|
-
|
|
77
|
+
const providers = [
|
|
78
|
+
[ScreenShareProvider, { value: screenShareImpl }],
|
|
79
|
+
[TextInputProvider, { value: textInputImpl }],
|
|
80
|
+
[FileInputProvider, { value: fileInputImpl }],
|
|
81
|
+
[SharedFileProvider, { value: sharedFileImpl }],
|
|
82
|
+
[InstanceStateProvider, { implementation: instanceStateImplementation }],
|
|
83
|
+
[SpawnPointProvider, { implementation: spawnPointImplementation }],
|
|
84
|
+
[UsersProvider, { implementation: usersImplementation }],
|
|
85
|
+
[InstanceEventProvider, { value: instanceEventImpl }],
|
|
86
|
+
[TeleportProvider, { value: teleportImpl }],
|
|
87
|
+
[ConfirmProvider, { value: confirmImpl }],
|
|
88
|
+
[WorldProvider, { value: worldImpl }],
|
|
89
|
+
[InstanceProvider, { value: instanceImpl }],
|
|
90
|
+
[AudioVolumeProvider, { value: audioVolumeImpl }],
|
|
91
|
+
];
|
|
92
|
+
if (placementMode) {
|
|
93
|
+
providers.push([PlacementStateProvider, { mode: placementMode }]);
|
|
94
|
+
}
|
|
95
|
+
return (_jsx(XRiftContext.Provider, { value: xriftContextValue, children: composeProviders(providers, children) }));
|
|
67
96
|
};
|
|
68
97
|
/**
|
|
69
98
|
* XRift ワールドの情報を取得するhook
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"XRiftContext.js","sourceRoot":"","sources":["../../src/contexts/XRiftContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type FileInputRequest } from '../contexts/FileInputContext';
|
|
2
|
+
/**
|
|
3
|
+
* ファイル選択ダイアログを使用するhook
|
|
4
|
+
* ワールド作成者が3Dオブジェクトのクリックをトリガーにファイル選択を行うために使用
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const { requestFileInput } = useFileInput()
|
|
8
|
+
*
|
|
9
|
+
* const handleClick = () => {
|
|
10
|
+
* requestFileInput({
|
|
11
|
+
* id: 'avatar-upload',
|
|
12
|
+
* accept: '.vrm',
|
|
13
|
+
* maxSize: 30 * 1024 * 1024,
|
|
14
|
+
* onSelect: (files) => console.log('選択されたファイル:', files),
|
|
15
|
+
* })
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* @returns {{ requestFileInput: (request: FileInputRequest) => void }}
|
|
19
|
+
*/
|
|
20
|
+
export declare const useFileInput: () => {
|
|
21
|
+
requestFileInput: (request: FileInputRequest) => void;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=useFileInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFileInput.d.ts","sourceRoot":"","sources":["../../src/hooks/useFileInput.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,8BAA8B,CAAA;AAEzF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY,QAAO;IAAE,gBAAgB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;CAWtF,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useFileInputContext } from '../contexts/FileInputContext';
|
|
3
|
+
/**
|
|
4
|
+
* ファイル選択ダイアログを使用するhook
|
|
5
|
+
* ワールド作成者が3Dオブジェクトのクリックをトリガーにファイル選択を行うために使用
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* const { requestFileInput } = useFileInput()
|
|
9
|
+
*
|
|
10
|
+
* const handleClick = () => {
|
|
11
|
+
* requestFileInput({
|
|
12
|
+
* id: 'avatar-upload',
|
|
13
|
+
* accept: '.vrm',
|
|
14
|
+
* maxSize: 30 * 1024 * 1024,
|
|
15
|
+
* onSelect: (files) => console.log('選択されたファイル:', files),
|
|
16
|
+
* })
|
|
17
|
+
* }
|
|
18
|
+
*
|
|
19
|
+
* @returns {{ requestFileInput: (request: FileInputRequest) => void }}
|
|
20
|
+
*/
|
|
21
|
+
export const useFileInput = () => {
|
|
22
|
+
const { requestFileInput } = useFileInputContext();
|
|
23
|
+
const stableRequestFileInput = useCallback((request) => {
|
|
24
|
+
requestFileInput(request);
|
|
25
|
+
}, [requestFileInput]);
|
|
26
|
+
return { requestFileInput: stableRequestFileInput };
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=useFileInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFileInput.js","sourceRoot":"","sources":["../../src/hooks/useFileInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAyB,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAEzF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAA8D,EAAE;IAC1F,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAElD,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,OAAyB,EAAE,EAAE;QAC5B,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAC3B,CAAC,EACD,CAAC,gBAAgB,CAAC,CACnB,CAAA;IAED,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,CAAA;AACrD,CAAC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type SharedFileContextValue } from '../contexts/SharedFileContext';
|
|
2
|
+
/**
|
|
3
|
+
* 共有ファイルのアップロード・一覧取得を行うhook
|
|
4
|
+
* ワールド作成者が3D空間内から共有ファイルを操作するために使用
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const { uploadSharedFile, getSharedFiles } = useSharedFile()
|
|
8
|
+
*
|
|
9
|
+
* const handleUpload = async (file: File) => {
|
|
10
|
+
* const result = await uploadSharedFile(file, (progress) => {
|
|
11
|
+
* console.log(`${progress}%`)
|
|
12
|
+
* })
|
|
13
|
+
* console.log('URL:', result.publicUrl)
|
|
14
|
+
* }
|
|
15
|
+
*
|
|
16
|
+
* @returns {{ uploadSharedFile, getSharedFiles }}
|
|
17
|
+
*/
|
|
18
|
+
export declare const useSharedFile: () => {
|
|
19
|
+
uploadSharedFile: SharedFileContextValue["uploadSharedFile"];
|
|
20
|
+
getSharedFiles: SharedFileContextValue["getSharedFiles"];
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=useSharedFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSharedFile.d.ts","sourceRoot":"","sources":["../../src/hooks/useSharedFile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,sBAAsB,EAAwB,MAAM,+BAA+B,CAAA;AAEjG;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,QAAO;IAC/B,gBAAgB,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAA;IAC5D,cAAc,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAA;CAYzD,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useSharedFileContext } from '../contexts/SharedFileContext';
|
|
3
|
+
/**
|
|
4
|
+
* 共有ファイルのアップロード・一覧取得を行うhook
|
|
5
|
+
* ワールド作成者が3D空間内から共有ファイルを操作するために使用
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* const { uploadSharedFile, getSharedFiles } = useSharedFile()
|
|
9
|
+
*
|
|
10
|
+
* const handleUpload = async (file: File) => {
|
|
11
|
+
* const result = await uploadSharedFile(file, (progress) => {
|
|
12
|
+
* console.log(`${progress}%`)
|
|
13
|
+
* })
|
|
14
|
+
* console.log('URL:', result.publicUrl)
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* @returns {{ uploadSharedFile, getSharedFiles }}
|
|
18
|
+
*/
|
|
19
|
+
export const useSharedFile = () => {
|
|
20
|
+
const { uploadSharedFile, getSharedFiles } = useSharedFileContext();
|
|
21
|
+
const stableUploadSharedFile = useCallback((file, onProgress) => uploadSharedFile(file, onProgress), [uploadSharedFile]);
|
|
22
|
+
const stableGetSharedFiles = useCallback(() => getSharedFiles(), [getSharedFiles]);
|
|
23
|
+
return { uploadSharedFile: stableUploadSharedFile, getSharedFiles: stableGetSharedFiles };
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=useSharedFile.js.map
|
|
@@ -0,0 +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,EAA+B,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEjG;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAG3B,EAAE;IACF,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,oBAAoB,EAAE,CAAA;IAEnE,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,IAAU,EAAE,UAAuC,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,EAC3F,CAAC,gBAAgB,CAAC,CACnB,CAAA;IAED,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IAElF,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAA;AAC3F,CAAC,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,12 +4,14 @@ export { ScreenShareContext, ScreenShareProvider, useScreenShareContext, type Sc
|
|
|
4
4
|
export { SpawnPointContext, SpawnPointProvider, useSpawnPointContext, type SpawnPoint as SpawnPointData, type SpawnPointContextValue, } from './contexts/SpawnPointContext';
|
|
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
|
+
export { FileInputContext, FileInputProvider, useFileInputContext, createDefaultFileInputImplementation, type FileInputContextValue, type FileInputRequest, type FileInputError, type FileInputErrorType, } from './contexts/FileInputContext';
|
|
7
8
|
export { ConfirmContext, ConfirmProvider, useConfirmContext, createDefaultConfirmImplementation, type ConfirmContextValue, type ConfirmOptions, } from './contexts/ConfirmContext';
|
|
8
9
|
export { InstanceContext, InstanceProvider, useInstanceContext, createDefaultInstanceImplementation, type InstanceContextValue, type InstanceInfo, } from './contexts/InstanceContext';
|
|
9
10
|
export { WorldContext, WorldProvider, useWorldContext, createDefaultWorldImplementation, type WorldContextValue, type WorldInfo, } from './contexts/WorldContext';
|
|
10
11
|
export { TeleportContext, TeleportProvider, useTeleportContext, createDefaultTeleportImplementation, type TeleportContextValue, type TeleportDestination, } from './contexts/TeleportContext';
|
|
11
12
|
export { InstanceEventContext, InstanceEventProvider, useInstanceEventContext, createDefaultInstanceEventImplementation, type InstanceEventContextValue, } from './contexts/InstanceEventContext';
|
|
12
13
|
export { PlacementStateProvider, usePlacementState, type PlacementMode, type PlacementStateContextValue, } from './contexts/PlacementStateContext';
|
|
14
|
+
export { SharedFileContext, SharedFileProvider, useSharedFileContext, createDefaultSharedFileImplementation, type SharedFileContextValue, type SharedFileInfo, } from './contexts/SharedFileContext';
|
|
13
15
|
export { VoiceVolumeOverrideContext, VoiceVolumeOverrideProvider, useVoiceVolumeOverrideContext, createDefaultVoiceVolumeOverrideImplementation, type VoiceVolumeOverrideContextValue, AudioVolumeContext, AudioVolumeProvider, useAudioVolumeContext, createDefaultAudioVolumeImplementation, type AudioVolumeContextValue, } from './contexts/AudioVolumeContext';
|
|
14
16
|
export { Interactable, type InteractableProps, } from './components/Interactable';
|
|
15
17
|
export { Mirror, type MirrorProps } from './components/Mirror';
|
|
@@ -30,10 +32,12 @@ export { type PhysicsConfig, type CameraConfig, } from './components/DevEnvironm
|
|
|
30
32
|
export { useInstanceState } from './hooks/useInstanceState';
|
|
31
33
|
export { useSpawnPoint } from './hooks/useSpawnPoint';
|
|
32
34
|
export { useConfirm } from './hooks/useConfirm';
|
|
35
|
+
export { useFileInput } from './hooks/useFileInput';
|
|
33
36
|
export { useTeleport } from './hooks/useTeleport';
|
|
34
37
|
export { useInstance } from './hooks/useInstance';
|
|
35
38
|
export { useWorld } from './hooks/useWorld';
|
|
36
39
|
export { useInstanceEvent } from './hooks/useInstanceEvent';
|
|
40
|
+
export { useSharedFile } from './hooks/useSharedFile';
|
|
37
41
|
export { useVoiceVolumeOverride, useAudioVolume } from './hooks/useAudioVolume';
|
|
38
42
|
export { useDefaultFont, type FontLocale } from './hooks/useDefaultFont';
|
|
39
43
|
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
|
@@ -5,12 +5,14 @@ export { ScreenShareContext, ScreenShareProvider, useScreenShareContext, } from
|
|
|
5
5
|
export { SpawnPointContext, SpawnPointProvider, useSpawnPointContext, } from './contexts/SpawnPointContext';
|
|
6
6
|
export { UsersContext, UsersProvider, useUsers, } from './contexts/UsersContext';
|
|
7
7
|
export { TextInputContext, TextInputProvider, useTextInputContext, createDefaultTextInputImplementation, } from './contexts/TextInputContext';
|
|
8
|
+
export { FileInputContext, FileInputProvider, useFileInputContext, createDefaultFileInputImplementation, } from './contexts/FileInputContext';
|
|
8
9
|
export { ConfirmContext, ConfirmProvider, useConfirmContext, createDefaultConfirmImplementation, } from './contexts/ConfirmContext';
|
|
9
10
|
export { InstanceContext, InstanceProvider, useInstanceContext, createDefaultInstanceImplementation, } from './contexts/InstanceContext';
|
|
10
11
|
export { WorldContext, WorldProvider, useWorldContext, createDefaultWorldImplementation, } from './contexts/WorldContext';
|
|
11
12
|
export { TeleportContext, TeleportProvider, useTeleportContext, createDefaultTeleportImplementation, } from './contexts/TeleportContext';
|
|
12
13
|
export { InstanceEventContext, InstanceEventProvider, useInstanceEventContext, createDefaultInstanceEventImplementation, } from './contexts/InstanceEventContext';
|
|
13
14
|
export { PlacementStateProvider, usePlacementState, } from './contexts/PlacementStateContext';
|
|
15
|
+
export { SharedFileContext, SharedFileProvider, useSharedFileContext, createDefaultSharedFileImplementation, } from './contexts/SharedFileContext';
|
|
14
16
|
export { VoiceVolumeOverrideContext, VoiceVolumeOverrideProvider, useVoiceVolumeOverrideContext, createDefaultVoiceVolumeOverrideImplementation,
|
|
15
17
|
// Deprecated aliases
|
|
16
18
|
AudioVolumeContext, AudioVolumeProvider, useAudioVolumeContext, createDefaultAudioVolumeImplementation, } from './contexts/AudioVolumeContext';
|
|
@@ -34,10 +36,12 @@ export { BillboardY, useBillboardY, getBillboardYRotation, } from './components/
|
|
|
34
36
|
export { useInstanceState } from './hooks/useInstanceState';
|
|
35
37
|
export { useSpawnPoint } from './hooks/useSpawnPoint';
|
|
36
38
|
export { useConfirm } from './hooks/useConfirm';
|
|
39
|
+
export { useFileInput } from './hooks/useFileInput';
|
|
37
40
|
export { useTeleport } from './hooks/useTeleport';
|
|
38
41
|
export { useInstance } from './hooks/useInstance';
|
|
39
42
|
export { useWorld } from './hooks/useWorld';
|
|
40
43
|
export { useInstanceEvent } from './hooks/useInstanceEvent';
|
|
44
|
+
export { useSharedFile } from './hooks/useSharedFile';
|
|
41
45
|
export { useVoiceVolumeOverride, useAudioVolume } from './hooks/useAudioVolume';
|
|
42
46
|
export { useDefaultFont } from './hooks/useDefaultFont';
|
|
43
47
|
// Constants
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|