From 9de00c192a43652f9bae13c5d5df5ecd942cf7dd Mon Sep 17 00:00:00 2001 From: Frontend Developer Date: Tue, 10 Mar 2026 09:38:34 +0000 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF:=20=E6=B7=BB=E5=8A=A0useShar?= =?UTF-8?q?e=E5=88=86=E4=BA=AB=E9=92=A9=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/renderer/hooks/useShare.js | 30 +++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 frontend/src/renderer/hooks/useShare.js diff --git a/frontend/src/renderer/hooks/useShare.js b/frontend/src/renderer/hooks/useShare.js new file mode 100644 index 0000000..10ae5a6 --- /dev/null +++ b/frontend/src/renderer/hooks/useShare.js @@ -0,0 +1,30 @@ +import { useState } from 'react'; +import api from '../utils/api'; + +export const useShare = () => { + const [loading, setLoading] = useState(false); + + const createShare = async (fileId, options = {}) => { + setLoading(true); + try { + const data = await api.post('/api/share', { fileId, ...options }); + return data; + } finally { + setLoading(false); + } + }; + + const getShareInfo = async (token) => { + const data = await api.get(`/api/share/${token}`); + return data; + }; + + const verifyPassword = async (token, password) => { + const data = await api.post(`/api/share/${token}/verify`, { password }); + return data; + }; + + return { loading, createShare, getShareInfo, verifyPassword }; +}; + +export default useShare;