(file: File)
| 167 | } |
| 168 | |
| 169 | const handleImport = (file: File) => { |
| 170 | setImporting(true) |
| 171 | |
| 172 | const reader = new FileReader() |
| 173 | reader.onload = (e) => { |
| 174 | try { |
| 175 | const content = e.target?.result as string |
| 176 | const parsedData = JSON.parse(content) |
| 177 | |
| 178 | // 根据文件类型进行不同的处理 |
| 179 | if (parsedData.type === 'all-data') { |
| 180 | // 完整数据导出 |
| 181 | importSettings(parsedData.settings) |
| 182 | |
| 183 | if (parsedData.pages && parsedData.pages.length > 0) { |
| 184 | importPages(parsedData.pages) |
| 185 | } |
| 186 | |
| 187 | if (parsedData.folders && parsedData.folders.length > 0) { |
| 188 | importFolders(parsedData.folders) |
| 189 | } |
| 190 | |
| 191 | // 导入收藏数据 |
| 192 | if (parsedData.favorites) { |
| 193 | if (parsedData.favorites.items && parsedData.favorites.items.length > 0) { |
| 194 | importFavorites(parsedData.favorites.items) |
| 195 | } |
| 196 | if (parsedData.favorites.folders && parsedData.favorites.folders.length > 0) { |
| 197 | importFavoriteFolders(parsedData.favorites.folders) |
| 198 | } |
| 199 | } |
| 200 | |
| 201 | message.success('所有数据导入成功(包含设置、聊天历史和收藏)') |
| 202 | } else if (parsedData.type === 'settings-only') { |
| 203 | // 只有设置数据 |
| 204 | importSettings(parsedData.settings) |
| 205 | message.success('设置数据导入成功') |
| 206 | } else if (parsedData.type === 'chats-only') { |
| 207 | // 只有聊天记录数据 |
| 208 | if (parsedData.pages && parsedData.pages.length > 0) { |
| 209 | importPages(parsedData.pages) |
| 210 | } |
| 211 | |
| 212 | if (parsedData.folders && parsedData.folders.length > 0) { |
| 213 | importFolders(parsedData.folders) |
| 214 | } |
| 215 | |
| 216 | message.success('聊天记录导入成功') |
| 217 | } else if (parsedData.type === 'favorites-only') { |
| 218 | // 只有收藏数据 |
| 219 | if (parsedData.items && parsedData.items.length > 0) { |
| 220 | importFavorites(parsedData.items) |
| 221 | } |
| 222 | if (parsedData.folders && parsedData.folders.length > 0) { |
| 223 | importFavoriteFolders(parsedData.folders) |
| 224 | } |
| 225 | |
| 226 | message.success('收藏数据导入成功') |
nothing calls this directly
no outgoing calls
no test coverage detected