diff --git a/vite/public/assets/ai/ai-01.mp3 b/vite/public/assets/ai/ai-01.mp3 new file mode 100644 index 0000000..eb1fe8e Binary files /dev/null and b/vite/public/assets/ai/ai-01.mp3 differ diff --git a/vite/public/assets/ai/ai-03.mp3 b/vite/public/assets/ai/ai-03.mp3 new file mode 100644 index 0000000..1007df2 Binary files /dev/null and b/vite/public/assets/ai/ai-03.mp3 differ diff --git a/vite/public/assets/ai/ai-04.mp3 b/vite/public/assets/ai/ai-04.mp3 new file mode 100644 index 0000000..c68f1e0 Binary files /dev/null and b/vite/public/assets/ai/ai-04.mp3 differ diff --git a/vite/public/assets/ai/ai-05.mp3 b/vite/public/assets/ai/ai-05.mp3 new file mode 100644 index 0000000..57914bc Binary files /dev/null and b/vite/public/assets/ai/ai-05.mp3 differ diff --git a/vite/public/assets/ai/ai-06.mp3 b/vite/public/assets/ai/ai-06.mp3 new file mode 100644 index 0000000..fe7190d Binary files /dev/null and b/vite/public/assets/ai/ai-06.mp3 differ diff --git a/vite/public/assets/ai/ai-07.mp3 b/vite/public/assets/ai/ai-07.mp3 new file mode 100644 index 0000000..17730ef Binary files /dev/null and b/vite/public/assets/ai/ai-07.mp3 differ diff --git a/vite/public/assets/ai/ai-08.mp3 b/vite/public/assets/ai/ai-08.mp3 new file mode 100644 index 0000000..0005a43 Binary files /dev/null and b/vite/public/assets/ai/ai-08.mp3 differ diff --git a/vite/public/assets/q1.mp3 b/vite/public/assets/archive/q1.mp3 similarity index 100% rename from vite/public/assets/q1.mp3 rename to vite/public/assets/archive/q1.mp3 diff --git a/vite/public/assets/q2.mp3 b/vite/public/assets/archive/q2.mp3 similarity index 100% rename from vite/public/assets/q2.mp3 rename to vite/public/assets/archive/q2.mp3 diff --git a/vite/public/assets/q3.mp3 b/vite/public/assets/archive/q3.mp3 similarity index 100% rename from vite/public/assets/q3.mp3 rename to vite/public/assets/archive/q3.mp3 diff --git a/vite/public/assets/q4-1.mp3 b/vite/public/assets/archive/q4-1.mp3 similarity index 100% rename from vite/public/assets/q4-1.mp3 rename to vite/public/assets/archive/q4-1.mp3 diff --git a/vite/public/assets/q4-2.mp3 b/vite/public/assets/archive/q4-2.mp3 similarity index 100% rename from vite/public/assets/q4-2.mp3 rename to vite/public/assets/archive/q4-2.mp3 diff --git a/vite/public/assets/q4-2__.mp3 b/vite/public/assets/archive/q4-2__.mp3 similarity index 100% rename from vite/public/assets/q4-2__.mp3 rename to vite/public/assets/archive/q4-2__.mp3 diff --git a/vite/public/assets/q4.mp3 b/vite/public/assets/archive/q4.mp3 similarity index 100% rename from vite/public/assets/q4.mp3 rename to vite/public/assets/archive/q4.mp3 diff --git a/vite/public/assets/q5-2.mp3 b/vite/public/assets/archive/q5-2.mp3 similarity index 100% rename from vite/public/assets/q5-2.mp3 rename to vite/public/assets/archive/q5-2.mp3 diff --git a/vite/public/assets/q5.mp3 b/vite/public/assets/archive/q5.mp3 similarity index 100% rename from vite/public/assets/q5.mp3 rename to vite/public/assets/archive/q5.mp3 diff --git a/vite/public/assets/q6.mp3 b/vite/public/assets/archive/q6.mp3 similarity index 100% rename from vite/public/assets/q6.mp3 rename to vite/public/assets/archive/q6.mp3 diff --git a/vite/public/assets/bg-03.mp3 b/vite/public/assets/bg-03.mp3 new file mode 100644 index 0000000..d1f1b7c Binary files /dev/null and b/vite/public/assets/bg-03.mp3 differ diff --git a/vite/public/assets/number/0.mp3 b/vite/public/assets/number/0.mp3 index cb455de..a801ede 100644 Binary files a/vite/public/assets/number/0.mp3 and b/vite/public/assets/number/0.mp3 differ diff --git a/vite/public/assets/number/1.mp3 b/vite/public/assets/number/1.mp3 index bcd96c3..defde29 100644 Binary files a/vite/public/assets/number/1.mp3 and b/vite/public/assets/number/1.mp3 differ diff --git a/vite/public/assets/number/2.mp3 b/vite/public/assets/number/2.mp3 index 6806ec9..a25c43e 100644 Binary files a/vite/public/assets/number/2.mp3 and b/vite/public/assets/number/2.mp3 differ diff --git a/vite/public/assets/number/3.mp3 b/vite/public/assets/number/3.mp3 index 9e3589e..e2b546e 100644 Binary files a/vite/public/assets/number/3.mp3 and b/vite/public/assets/number/3.mp3 differ diff --git a/vite/public/assets/number/4.mp3 b/vite/public/assets/number/4.mp3 index 4f9af30..bc34823 100644 Binary files a/vite/public/assets/number/4.mp3 and b/vite/public/assets/number/4.mp3 differ diff --git a/vite/public/assets/number/5.mp3 b/vite/public/assets/number/5.mp3 index 8fc704b..88968a5 100644 Binary files a/vite/public/assets/number/5.mp3 and b/vite/public/assets/number/5.mp3 differ diff --git a/vite/public/assets/number/6.mp3 b/vite/public/assets/number/6.mp3 index 5f1a287..ac9cfd2 100644 Binary files a/vite/public/assets/number/6.mp3 and b/vite/public/assets/number/6.mp3 differ diff --git a/vite/public/assets/number/7.mp3 b/vite/public/assets/number/7.mp3 index 01baf66..97ba221 100644 Binary files a/vite/public/assets/number/7.mp3 and b/vite/public/assets/number/7.mp3 differ diff --git a/vite/public/assets/number/8.mp3 b/vite/public/assets/number/8.mp3 index d31c82d..218ffc3 100644 Binary files a/vite/public/assets/number/8.mp3 and b/vite/public/assets/number/8.mp3 differ diff --git a/vite/public/assets/number/9.mp3 b/vite/public/assets/number/9.mp3 index ddb8171..762c507 100644 Binary files a/vite/public/assets/number/9.mp3 and b/vite/public/assets/number/9.mp3 differ diff --git a/vite/public/assets/number/a.mp3 b/vite/public/assets/number/a.mp3 index ce56010..9f0221e 100644 Binary files a/vite/public/assets/number/a.mp3 and b/vite/public/assets/number/a.mp3 differ diff --git a/vite/public/assets/number/error.mp3 b/vite/public/assets/number/error.mp3 index d94b9ac..6174ff5 100644 Binary files a/vite/public/assets/number/error.mp3 and b/vite/public/assets/number/error.mp3 differ diff --git a/vite/public/assets/number/old/0.mp3 b/vite/public/assets/number/old/0.mp3 new file mode 100644 index 0000000..cb455de Binary files /dev/null and b/vite/public/assets/number/old/0.mp3 differ diff --git a/vite/public/assets/number/old/1.mp3 b/vite/public/assets/number/old/1.mp3 new file mode 100644 index 0000000..bcd96c3 Binary files /dev/null and b/vite/public/assets/number/old/1.mp3 differ diff --git a/vite/public/assets/number/old/2.mp3 b/vite/public/assets/number/old/2.mp3 new file mode 100644 index 0000000..6806ec9 Binary files /dev/null and b/vite/public/assets/number/old/2.mp3 differ diff --git a/vite/public/assets/number/old/3.mp3 b/vite/public/assets/number/old/3.mp3 new file mode 100644 index 0000000..9e3589e Binary files /dev/null and b/vite/public/assets/number/old/3.mp3 differ diff --git a/vite/public/assets/number/old/4.mp3 b/vite/public/assets/number/old/4.mp3 new file mode 100644 index 0000000..4f9af30 Binary files /dev/null and b/vite/public/assets/number/old/4.mp3 differ diff --git a/vite/public/assets/number/old/5.mp3 b/vite/public/assets/number/old/5.mp3 new file mode 100644 index 0000000..8fc704b Binary files /dev/null and b/vite/public/assets/number/old/5.mp3 differ diff --git a/vite/public/assets/number/old/6.mp3 b/vite/public/assets/number/old/6.mp3 new file mode 100644 index 0000000..5f1a287 Binary files /dev/null and b/vite/public/assets/number/old/6.mp3 differ diff --git a/vite/public/assets/number/old/7.mp3 b/vite/public/assets/number/old/7.mp3 new file mode 100644 index 0000000..01baf66 Binary files /dev/null and b/vite/public/assets/number/old/7.mp3 differ diff --git a/vite/public/assets/number/old/8.mp3 b/vite/public/assets/number/old/8.mp3 new file mode 100644 index 0000000..d31c82d Binary files /dev/null and b/vite/public/assets/number/old/8.mp3 differ diff --git a/vite/public/assets/number/old/9.mp3 b/vite/public/assets/number/old/9.mp3 new file mode 100644 index 0000000..ddb8171 Binary files /dev/null and b/vite/public/assets/number/old/9.mp3 differ diff --git a/vite/public/assets/number/old/a.mp3 b/vite/public/assets/number/old/a.mp3 new file mode 100644 index 0000000..ce56010 Binary files /dev/null and b/vite/public/assets/number/old/a.mp3 differ diff --git a/vite/public/assets/number/old/error.mp3 b/vite/public/assets/number/old/error.mp3 new file mode 100644 index 0000000..d94b9ac Binary files /dev/null and b/vite/public/assets/number/old/error.mp3 differ diff --git a/vite/public/assets/number/old/q.mp3 b/vite/public/assets/number/old/q.mp3 new file mode 100644 index 0000000..b6d1bd5 Binary files /dev/null and b/vite/public/assets/number/old/q.mp3 differ diff --git a/vite/public/assets/number/q.mp3 b/vite/public/assets/number/q.mp3 index b6d1bd5..3f80854 100644 Binary files a/vite/public/assets/number/q.mp3 and b/vite/public/assets/number/q.mp3 differ diff --git a/vite/public/assets/record/record-01.mp3 b/vite/public/assets/record/record-01.mp3 new file mode 100644 index 0000000..566ade9 Binary files /dev/null and b/vite/public/assets/record/record-01.mp3 differ diff --git a/vite/public/assets/record/record-02.mp3 b/vite/public/assets/record/record-02.mp3 new file mode 100644 index 0000000..cfd2c7d Binary files /dev/null and b/vite/public/assets/record/record-02.mp3 differ diff --git a/vite/public/assets/record/record-03.mp3 b/vite/public/assets/record/record-03.mp3 new file mode 100644 index 0000000..cd37d84 Binary files /dev/null and b/vite/public/assets/record/record-03.mp3 differ diff --git a/vite/public/assets/record/record-04.mp3 b/vite/public/assets/record/record-04.mp3 new file mode 100644 index 0000000..7d45c1e Binary files /dev/null and b/vite/public/assets/record/record-04.mp3 differ diff --git a/vite/public/assets/record/record-05.mp3 b/vite/public/assets/record/record-05.mp3 new file mode 100644 index 0000000..50b9d37 Binary files /dev/null and b/vite/public/assets/record/record-05.mp3 differ diff --git a/vite/public/assets/sfx/sfx-01.mp3 b/vite/public/assets/sfx/sfx-01.mp3 new file mode 100644 index 0000000..ba829d9 Binary files /dev/null and b/vite/public/assets/sfx/sfx-01.mp3 differ diff --git a/vite/public/assets/sfx/sfx-02.mp3 b/vite/public/assets/sfx/sfx-02.mp3 new file mode 100644 index 0000000..b0bc3ec Binary files /dev/null and b/vite/public/assets/sfx/sfx-02.mp3 differ diff --git a/vite/public/assets/sfx/sfx-03.mp3 b/vite/public/assets/sfx/sfx-03.mp3 new file mode 100644 index 0000000..d3d1b81 Binary files /dev/null and b/vite/public/assets/sfx/sfx-03.mp3 differ diff --git a/vite/public/assets/sfx/sfx-04.mp3 b/vite/public/assets/sfx/sfx-04.mp3 new file mode 100644 index 0000000..8d7048d Binary files /dev/null and b/vite/public/assets/sfx/sfx-04.mp3 differ diff --git a/vite/public/assets/sfx/sfx-05.mp3 b/vite/public/assets/sfx/sfx-05.mp3 new file mode 100644 index 0000000..22eecd4 Binary files /dev/null and b/vite/public/assets/sfx/sfx-05.mp3 differ diff --git a/vite/public/assets/sfx/sfx-06.mp3 b/vite/public/assets/sfx/sfx-06.mp3 new file mode 100644 index 0000000..3da495c Binary files /dev/null and b/vite/public/assets/sfx/sfx-06.mp3 differ diff --git a/vite/public/assets/sfx/sfx-07.mp3 b/vite/public/assets/sfx/sfx-07.mp3 new file mode 100644 index 0000000..cbc1c7f Binary files /dev/null and b/vite/public/assets/sfx/sfx-07.mp3 differ diff --git a/vite/public/assets/sfx/sfx-08.mp3 b/vite/public/assets/sfx/sfx-08.mp3 new file mode 100644 index 0000000..8cd7ec4 Binary files /dev/null and b/vite/public/assets/sfx/sfx-08.mp3 differ diff --git a/vite/public/assets/sfx/sfx-09.mp3 b/vite/public/assets/sfx/sfx-09.mp3 new file mode 100644 index 0000000..828b25e Binary files /dev/null and b/vite/public/assets/sfx/sfx-09.mp3 differ diff --git a/vite/public/assets/sfx/sfx-10.mp3 b/vite/public/assets/sfx/sfx-10.mp3 new file mode 100644 index 0000000..79692bf Binary files /dev/null and b/vite/public/assets/sfx/sfx-10.mp3 differ diff --git a/vite/public/assets/sfx/sfx-11.mp3 b/vite/public/assets/sfx/sfx-11.mp3 new file mode 100644 index 0000000..1d944b9 Binary files /dev/null and b/vite/public/assets/sfx/sfx-11.mp3 differ diff --git a/vite/public/cuelist_demo2.json b/vite/public/cuelist_demo2.json new file mode 100644 index 0000000..e7bde1f --- /dev/null +++ b/vite/public/cuelist_demo2.json @@ -0,0 +1,197 @@ +{ + "cuelist": [ + { + "id": 1, + "name": "Q1", + "type": "space", + "description": "Annonce", + "audioFile": "assets/bg-03.mp3", + "loop": true, + "status":"reset" + }, + { + "id": 2, + "name": "Q2", + "type": "headphone", + "description": "Guide for drink", + "auto": true, + "audioFile": "assets/record/record-01.mp3", + "nextcue": 3, + "status":"reset" + }, + { + "id": 3, + "name": "Q3", + "description": "Guide for phone", + "type": "headphone", + "auto": true, + "audioFile": "assets/record/record-02.mp3", + "nextcue":4 + }, + { + "id": 4, + "name": "Q4", + "type": "phone", + "description": "引導撥號", + "auto": false, + "audioFile": "assets/ai/ai-01.mp3", + "nextcue": 4.01, + "callback":"numpad" + }, + { + "id": 4.01, + "name": "Q4.01", + "type": "phone", + "description": "撥接音效", + "auto": false, + "audioFile": "assets/sfx/sfx-03.mp3", + "nextcue": 4.1 + }, + { + "id": 4.1, + "name": "Q4.1", + "type": "phone", + "description": "輸入完成,請描述腦中的記憶畫面", + "auto": true, + "audioFile": "assets/ai/ai-03.mp3", + "nextcue": 4.11 + }, + { + "id": 4.11, + "name": "Q4.11", + "type": "phone", + "description": "裝置啟動音效", + "auto": true, + "audioFile": "assets/sfx/sfx-04.mp3", + "nextcue": 4.2, + "status":"intro", + "callback":"fade_out_light" + }, + { + "id": 4.2, + "name": "Q4.2", + "type": "chat", + "description": "chat", + "auto": true, + "nextcue": 4.3, + "duration": 90, + "status":"go" + }, + { + "id": 4.21, + "name": "Q4.21", + "type": "phone", + "description": "裝置完成音效", + "auto": true, + "audioFile": "assets/sfx/sfx-06.mp3", + "nextcue": 4.3 + }, + { + "id": 4.3, + "name": "Q4.3", + "type": "phone", + "description": "記憶提取完成", + "auto": true, + "audioFile": "assets/ai/ai-04.mp3", + "nextcue": 4.4 + }, + { + "id": 4.4, + "name": "Q4.4", + "type": "phone", + "description": "準備打電話", + "audioFile": "assets/record/record-03.mp3", + "auto": true, + "nextcue": 5.1 + }, + { + "id": 4.5, + "name": "Q4.5", + "type": "phone", + "description": "電話將自動接通", + "audioFile": "assets/ai/ai-05.mp3", + "auto": true, + "nextcue": 4.51 + }, + { + "id": 4.51, + "name": "Q4.51", + "type": "phone", + "description": "接通音效", + "audioFile": "assets/sfx/sfx-07.mp3", + "auto": true, + "nextcue": 5.1 + }, + { + "id": 5.1, + "name": "Q5.1", + "type": "user_input", + "description": "call", + "duration": 30, + "auto": true, + "nextcue": 5.2, + "callback":"summary" + }, + { + "id": 5.2, + "name": "Q5.2", + "type": "phone", + "description": "保留刪除", + "auto": true, + "nextcue": 5.3, + "audioFile": "assets/record/record-04.mp3" + }, + { + "id": 5.3, + "name": "Q5.3", + "type": "phone", + "description": "保留刪除操作說明", + "audioFile": "assets/ai/ai-06.mp3", + "callback":"numpad", + "auto": false, + "branch":{ + "1": { + "nextcue": 5.4, + "description": "保留" + }, + "9": { + "nextcue": 5.5, + "description": "刪除" + }, + "default": { + "nextcue": 5.4, + "description": "保留" + } + } + }, + { + "id": 5.4, + "name": "Q5.4", + "type": "phone", + "description": "保留", + "auto": false, + "nextcue": 6, + "audioFile": "assets/ai/ai-07.mp3", + "callback":"numpad" + }, + { + "id": 5.5, + "name": "Q5.5", + "type": "phone", + "description": "刪除", + "auto": false, + "nextcue": 6, + "audioFile": "assets/ai/ai-08.mp3" + }, + { + "id": 6, + "name": "Q6", + "type": "space", + "description": "Ending", + "audioFile": "assets/record/record-05.mp3", + "status":"end", + "callback":"fade_in_light" + } + ] +} + \ No newline at end of file diff --git a/vite/src/comps/numpad.jsx b/vite/src/comps/numpad.jsx index 9b5bcfc..998e13e 100644 --- a/vite/src/comps/numpad.jsx +++ b/vite/src/comps/numpad.jsx @@ -83,9 +83,15 @@ export default function NumPad({onSend, disabled}){ refAudio.current = {}; for(var k in keys){ - const file=`assets/number/${keys[k]}.mp3`; - // console.log(`Loading audio file: ${file}`); - refAudio.current[keys[k]]=new Audio(file); + if(parseInt(keys[k])>=0 && parseInt(keys[k])<=9){ + refAudio.current[keys[k]]=new Audio(`assets/number/${keys[k]}.mp3`); + }else if(keys[k]===KEY_ENTER){ + refAudio.current[keys[k]]=new Audio(`assets/sfx/sfx-02.mp3`); + }else if(keys[k]===KEY_BACKSPACE){ + refAudio.current[keys[k]]=new Audio(`assets/sfx/sfx-01.mp3`); + }else if(keys[k]==='error'){ + refAudio.current[keys[k]]=new Audio(`assets/sfx/sfx-01.mp3`); + } } },[]); diff --git a/vite/src/pages/flow_free.jsx b/vite/src/pages/flow_free.jsx index 805f59a..b4855bb 100644 --- a/vite/src/pages/flow_free.jsx +++ b/vite/src/pages/flow_free.jsx @@ -15,6 +15,8 @@ import { DebugControl, TEST_PROMPT } from "../comps/debug"; import { useUser } from "../util/useUser"; +const CUELIST_FILE = 'cuelist_demo2.json'; + const EmojiType={ phone: '📞', headphone: '🎧', @@ -49,11 +51,11 @@ export function FreeFlow(){ const [autoSend, setAutoSend] = useState(true); // const [userId, setUserId] = useState(); const [summary, setSummary] = useState(null); - const [voice, setVoice] = useState(Voice.ONYX); + // const [voice, setVoice] = useState(Voice.ONYX); //const [speechPaused, setSpeechPaused]=useState(false); const [chatStatus, setChatStatus] = useState(ChatStatus.System); // System, User, Processing - const { userId, setUserId, getFileId } = useUser(); + const { userId, setUserId, getFileId, setPassword, reset:resetUser } = useUser(); const refTimer=useRef(); const refAudio=useRef(); @@ -110,8 +112,8 @@ export function FreeFlow(){ } let audioUrl = url; - if(voice==Voice.SHIMMER) audioUrl = url.replace(Voice.ONYX, Voice.SHIMMER); - console.log('Using voice:', voice, 'for audio:', audioUrl); + // if(voice==Voice.SHIMMER) audioUrl = url.replace(Voice.ONYX, Voice.SHIMMER); + // console.log('Using voice:', voice, 'for audio:', audioUrl); const audio = new Audio(audioUrl); audio.loop=refCurrentCue.current?.loop || false; // Set loop if defined in cue @@ -193,14 +195,14 @@ export function FreeFlow(){ refChatCueEnd.current=false; resetTranscript(); console.log('Starting conversation...'); - sendMessage(null, false, false, voice); // Send initial message with voice + sendMessage(null, false, false, null); // Send initial message with voice setChatWelcome(true); resetData(); // Reset data for new conversation break; case 'chat_end': const message= refInput.current?.value?.trim(); console.log('Ending conversation with message:', message); - sendMessage(message, false, true, voice); + sendMessage(message, false, true, null); setChatWelcome(false); setChatStatus(ChatStatus.Clear); break; @@ -311,12 +313,27 @@ export function FreeFlow(){ function onNumpad(mess){ - console.log('Numpad input:', mess); - + console.log('Numpad input:', mess); if(refCurrentCue.current?.callback!='numpad') return; - - console.log('Numpad input:', mess); - setUserId(()=>mess); + + let cue=refCurrentCue.current; + let next=cue.nextcue; + switch(cue.id){ + case 4: + setUserId(()=>mess); + break; + case 5.3: + next=cue.branch[mess.toString()].nextcue; + break; + case 5.4: + setPassword(()=>mess); + break; + } + + if(next){ + console.log('Finish enter number, next cue:', next); + playCue(cuelist.find(c => c.id === next)); + } } function saveImage(){ sendOsc('/export', 'output/test.png'); // Send OSC message to save image @@ -326,7 +343,7 @@ export function FreeFlow(){ if(userId>=1 && userId<=24) { console.log('User ID set:', userId); - playCue(cuelist.find(c => c.id === currentCue.nextcue)); // Play cue 5 when userId is set + playCue(cuelist.find(c => c.id === refCurrentCue.current.nextcue)); // Play cue 5 when userId is set } },[userId]); @@ -360,7 +377,7 @@ export function FreeFlow(){ const message= refInput.current?.value?.trim(); if(message && message.length>0) { console.log('Ending conversation with message:', message); - sendMessage(message, false, false, voice); + sendMessage(message, false, false, null); setChatWelcome(false); setChatStatus(ChatStatus.Processing); // Set chat status to Processing @@ -465,7 +482,7 @@ export function FreeFlow(){ useEffect(()=>{ - fetch('/cuelist_free.json') + fetch(CUELIST_FILE) .then(response => response.json()) .then(data => { console.log('Cuelist data:', data); diff --git a/vite/src/util/useData.jsx b/vite/src/util/useData.jsx index ef9daf6..b853dd1 100644 --- a/vite/src/util/useData.jsx +++ b/vite/src/util/useData.jsx @@ -59,8 +59,9 @@ export function DataProvider({children}) { } try{ - const res_write=await writeTextFile(filePath, JSON.stringify(towrite), { baseDir: BaseDirectory.AppData }) - console.log("File written successfully:", res_write); + const folder = await path.appDataDir(); + const res_write=await writeTextFile(`${folder}\\${filePath}`, JSON.stringify(towrite)) + console.log("File written successfully", `${folder}\\${filePath}`); }catch(error){ console.error("Error writing file:", error); } diff --git a/vite/src/util/useUser.jsx b/vite/src/util/useUser.jsx index 7854ca9..a492f48 100644 --- a/vite/src/util/useUser.jsx +++ b/vite/src/util/useUser.jsx @@ -17,13 +17,18 @@ export function UserProvider({children}) { const [userId, setUserId] = useState(null); const [sessionId, setSessionId] = useState(null); + const [password, setPassword] = useState(null); function getFileId(){ if(!userId) return `test-${moment().format("YYYYMMDDmmss")}-${sessionId}`; return `${moment().format("YYYYMMDD").substring(2)}-${sessionId}-${userId}`; } - + function reset(){ + setUserId(null); + setSessionId(null); + setPassword(null); + } useEffect(() => { @@ -44,7 +49,7 @@ export function UserProvider({children}) { }, [userId]); return ( - + {children} );