diff --git a/lib/rclone/api.ts b/lib/rclone/api.ts index 9651571..b8cf7f2 100644 --- a/lib/rclone/api.ts +++ b/lib/rclone/api.ts @@ -100,7 +100,10 @@ export async function getRemote(remote: string) { method: 'POST', headers: getAuthHeader(), }).then( - (res) => res.json() as Promise<{ type: string } & Record> + (res) => + res.json() as Promise< + { type: string; provider?: string } & Record + > ) // console.log(JSON.stringify(r, null, 2)) @@ -138,6 +141,8 @@ export async function createRemote( options.set('type', type) options.set('parameters', JSON.stringify(parameters)) + console.log('[createRemote] params', options.toString()) + await fetch(`http://localhost:5572/config/create?${options.toString()}`, { method: 'POST', headers: getAuthHeader(), diff --git a/public/icons/azureblob.png b/public/icons/backends/azureblob.png similarity index 100% rename from public/icons/azureblob.png rename to public/icons/backends/azureblob.png diff --git a/public/icons/azurefiles.png b/public/icons/backends/azurefiles.png similarity index 100% rename from public/icons/azurefiles.png rename to public/icons/backends/azurefiles.png diff --git a/public/icons/b2.png b/public/icons/backends/b2.png similarity index 100% rename from public/icons/b2.png rename to public/icons/backends/b2.png diff --git a/public/icons/box.png b/public/icons/backends/box.png similarity index 100% rename from public/icons/box.png rename to public/icons/backends/box.png diff --git a/public/icons/drive.png b/public/icons/backends/drive.png similarity index 100% rename from public/icons/drive.png rename to public/icons/backends/drive.png diff --git a/public/icons/dropbox.png b/public/icons/backends/dropbox.png similarity index 100% rename from public/icons/dropbox.png rename to public/icons/backends/dropbox.png diff --git a/public/icons/ftp.png b/public/icons/backends/ftp.png similarity index 100% rename from public/icons/ftp.png rename to public/icons/backends/ftp.png diff --git a/public/icons/gcs.png b/public/icons/backends/gcs.png similarity index 100% rename from public/icons/gcs.png rename to public/icons/backends/gcs.png diff --git a/public/icons/gphotos.png b/public/icons/backends/gphotos.png similarity index 100% rename from public/icons/gphotos.png rename to public/icons/backends/gphotos.png diff --git a/public/icons/http.png b/public/icons/backends/http.png similarity index 100% rename from public/icons/http.png rename to public/icons/backends/http.png diff --git a/public/icons/netstorage.png b/public/icons/backends/netstorage.png similarity index 100% rename from public/icons/netstorage.png rename to public/icons/backends/netstorage.png diff --git a/public/icons/onedrive.png b/public/icons/backends/onedrive.png similarity index 100% rename from public/icons/onedrive.png rename to public/icons/backends/onedrive.png diff --git a/public/icons/oos.png b/public/icons/backends/oos.png similarity index 100% rename from public/icons/oos.png rename to public/icons/backends/oos.png diff --git a/public/icons/protondrive.png b/public/icons/backends/protondrive.png similarity index 100% rename from public/icons/protondrive.png rename to public/icons/backends/protondrive.png diff --git a/public/icons/s3.png b/public/icons/backends/s3.png similarity index 100% rename from public/icons/s3.png rename to public/icons/backends/s3.png diff --git a/public/icons/sftp.png b/public/icons/backends/sftp.png similarity index 100% rename from public/icons/sftp.png rename to public/icons/backends/sftp.png diff --git a/public/icons/swift.png b/public/icons/backends/swift.png similarity index 100% rename from public/icons/swift.png rename to public/icons/backends/swift.png diff --git a/public/icons/webdav.png b/public/icons/backends/webdav.png similarity index 100% rename from public/icons/webdav.png rename to public/icons/backends/webdav.png diff --git a/public/icons/providers/AWS.png b/public/icons/providers/AWS.png new file mode 100644 index 0000000..4ac7616 Binary files /dev/null and b/public/icons/providers/AWS.png differ diff --git a/public/icons/providers/Alibaba.png b/public/icons/providers/Alibaba.png new file mode 100644 index 0000000..d7b6b18 Binary files /dev/null and b/public/icons/providers/Alibaba.png differ diff --git a/public/icons/providers/ArvanCloud.png b/public/icons/providers/ArvanCloud.png new file mode 100644 index 0000000..f8a1c04 Binary files /dev/null and b/public/icons/providers/ArvanCloud.png differ diff --git a/public/icons/providers/Ceph.png b/public/icons/providers/Ceph.png new file mode 100644 index 0000000..57ee025 Binary files /dev/null and b/public/icons/providers/Ceph.png differ diff --git a/public/icons/providers/ChinaMobile.png b/public/icons/providers/ChinaMobile.png new file mode 100644 index 0000000..720eeb6 Binary files /dev/null and b/public/icons/providers/ChinaMobile.png differ diff --git a/public/icons/providers/Cloudflare.png b/public/icons/providers/Cloudflare.png new file mode 100644 index 0000000..a80c55f Binary files /dev/null and b/public/icons/providers/Cloudflare.png differ diff --git a/public/icons/providers/DigitalOcean.png b/public/icons/providers/DigitalOcean.png new file mode 100644 index 0000000..9e0b0dd Binary files /dev/null and b/public/icons/providers/DigitalOcean.png differ diff --git a/public/icons/providers/Dreamhost.png b/public/icons/providers/Dreamhost.png new file mode 100644 index 0000000..1bddfa2 Binary files /dev/null and b/public/icons/providers/Dreamhost.png differ diff --git a/public/icons/providers/Exaba.png b/public/icons/providers/Exaba.png new file mode 100644 index 0000000..7900a3f Binary files /dev/null and b/public/icons/providers/Exaba.png differ diff --git a/public/icons/providers/FlashBlade.png b/public/icons/providers/FlashBlade.png new file mode 100644 index 0000000..0cea4d4 Binary files /dev/null and b/public/icons/providers/FlashBlade.png differ diff --git a/public/icons/providers/GCS.png b/public/icons/providers/GCS.png new file mode 100644 index 0000000..4d4e4ac Binary files /dev/null and b/public/icons/providers/GCS.png differ diff --git a/public/icons/providers/HuaweiOBS.png b/public/icons/providers/HuaweiOBS.png new file mode 100644 index 0000000..9e42b57 Binary files /dev/null and b/public/icons/providers/HuaweiOBS.png differ diff --git a/public/icons/providers/IBMCOS.png b/public/icons/providers/IBMCOS.png new file mode 100644 index 0000000..7af4bdd Binary files /dev/null and b/public/icons/providers/IBMCOS.png differ diff --git a/public/icons/providers/IDrive.png b/public/icons/providers/IDrive.png new file mode 100644 index 0000000..bf0b324 Binary files /dev/null and b/public/icons/providers/IDrive.png differ diff --git a/public/icons/providers/IONOS.png b/public/icons/providers/IONOS.png new file mode 100644 index 0000000..a68eb3b Binary files /dev/null and b/public/icons/providers/IONOS.png differ diff --git a/public/icons/providers/Leviia.png b/public/icons/providers/Leviia.png new file mode 100644 index 0000000..6d60a43 Binary files /dev/null and b/public/icons/providers/Leviia.png differ diff --git a/public/icons/providers/Liara.png b/public/icons/providers/Liara.png new file mode 100644 index 0000000..9564389 Binary files /dev/null and b/public/icons/providers/Liara.png differ diff --git a/public/icons/providers/Linode.png b/public/icons/providers/Linode.png new file mode 100644 index 0000000..1698534 Binary files /dev/null and b/public/icons/providers/Linode.png differ diff --git a/public/icons/providers/LyveCloud.png b/public/icons/providers/LyveCloud.png new file mode 100644 index 0000000..f9a825a Binary files /dev/null and b/public/icons/providers/LyveCloud.png differ diff --git a/public/icons/providers/Magalu.png b/public/icons/providers/Magalu.png new file mode 100644 index 0000000..a4e87e8 Binary files /dev/null and b/public/icons/providers/Magalu.png differ diff --git a/public/icons/providers/Mega.png b/public/icons/providers/Mega.png new file mode 100644 index 0000000..73748e1 Binary files /dev/null and b/public/icons/providers/Mega.png differ diff --git a/public/icons/providers/Minio.png b/public/icons/providers/Minio.png new file mode 100644 index 0000000..9db3a1c Binary files /dev/null and b/public/icons/providers/Minio.png differ diff --git a/public/icons/providers/Netease.png b/public/icons/providers/Netease.png new file mode 100644 index 0000000..e6900e0 Binary files /dev/null and b/public/icons/providers/Netease.png differ diff --git a/public/icons/providers/OVHcloud.png b/public/icons/providers/OVHcloud.png new file mode 100644 index 0000000..fd82e8a Binary files /dev/null and b/public/icons/providers/OVHcloud.png differ diff --git a/public/icons/providers/Other.png b/public/icons/providers/Other.png new file mode 100644 index 0000000..fc59e26 Binary files /dev/null and b/public/icons/providers/Other.png differ diff --git a/public/icons/providers/Outscale.png b/public/icons/providers/Outscale.png new file mode 100644 index 0000000..57e0478 Binary files /dev/null and b/public/icons/providers/Outscale.png differ diff --git a/public/icons/providers/Petabox.png b/public/icons/providers/Petabox.png new file mode 100644 index 0000000..6643139 Binary files /dev/null and b/public/icons/providers/Petabox.png differ diff --git a/public/icons/providers/Qiniu.png b/public/icons/providers/Qiniu.png new file mode 100644 index 0000000..b765248 Binary files /dev/null and b/public/icons/providers/Qiniu.png differ diff --git a/public/icons/providers/RackCorp.png b/public/icons/providers/RackCorp.png new file mode 100644 index 0000000..5872418 Binary files /dev/null and b/public/icons/providers/RackCorp.png differ diff --git a/public/icons/providers/Rclone.png b/public/icons/providers/Rclone.png new file mode 100644 index 0000000..12ce1c3 Binary files /dev/null and b/public/icons/providers/Rclone.png differ diff --git a/public/icons/providers/Scaleway.png b/public/icons/providers/Scaleway.png new file mode 100644 index 0000000..8491022 Binary files /dev/null and b/public/icons/providers/Scaleway.png differ diff --git a/public/icons/providers/SeaweedFS.png b/public/icons/providers/SeaweedFS.png new file mode 100644 index 0000000..42546bb Binary files /dev/null and b/public/icons/providers/SeaweedFS.png differ diff --git a/public/icons/providers/Selectel.png b/public/icons/providers/Selectel.png new file mode 100644 index 0000000..84f2034 Binary files /dev/null and b/public/icons/providers/Selectel.png differ diff --git a/public/icons/providers/StackPath.png b/public/icons/providers/StackPath.png new file mode 100644 index 0000000..462c5d2 Binary files /dev/null and b/public/icons/providers/StackPath.png differ diff --git a/public/icons/providers/Storj.png b/public/icons/providers/Storj.png new file mode 100644 index 0000000..32420fd Binary files /dev/null and b/public/icons/providers/Storj.png differ diff --git a/public/icons/providers/Synology.png b/public/icons/providers/Synology.png new file mode 100644 index 0000000..999b577 Binary files /dev/null and b/public/icons/providers/Synology.png differ diff --git a/public/icons/providers/TencentCOS.png b/public/icons/providers/TencentCOS.png new file mode 100644 index 0000000..71d16ef Binary files /dev/null and b/public/icons/providers/TencentCOS.png differ diff --git a/public/icons/providers/Wasabi.png b/public/icons/providers/Wasabi.png new file mode 100644 index 0000000..60bdf4c Binary files /dev/null and b/public/icons/providers/Wasabi.png differ diff --git a/public/icons/providers/Zata.png b/public/icons/providers/Zata.png new file mode 100644 index 0000000..f9c620c Binary files /dev/null and b/public/icons/providers/Zata.png differ diff --git a/src/components/RemoteCreateDrawer.tsx b/src/components/RemoteCreateDrawer.tsx index ac94784..924103a 100644 --- a/src/components/RemoteCreateDrawer.tsx +++ b/src/components/RemoteCreateDrawer.tsx @@ -98,7 +98,19 @@ export default function RemoteCreateDrawer({ }} > {(item) => ( - + + ) + } + > {item.Help || item.Value} )} @@ -183,6 +195,8 @@ export default function RemoteCreateDrawer({ await createRemote(name, type, parameters) addRemote(name) onClose() + setConfig({}) + setShowMoreOptions(false) await triggerTrayRebuild() } catch (error) { console.error('Failed to create remote:', error) @@ -263,7 +277,7 @@ export default function RemoteCreateDrawer({ key={backend.Name} startContent={ {backend.Name} @@ -271,7 +285,10 @@ export default function RemoteCreateDrawer({ > {backend.Description.includes('Compliant') ? `${backend.Description.split('Compliant')[0]} Compliant` - : backend.Description || backend.Name} + : backend.Description?.replace( + ' (this is not Google Drive)', + '' + ) || backend.Name} ))} diff --git a/src/components/RemoteEditDrawer.tsx b/src/components/RemoteEditDrawer.tsx index 9aa40fa..0f9a2b4 100644 --- a/src/components/RemoteEditDrawer.tsx +++ b/src/components/RemoteEditDrawer.tsx @@ -92,7 +92,19 @@ export default function RemoteEditDrawer({ description={option.Help.split('\n').slice(1).join('\n')} > {(item) => ( - + + ) + } + > {item.Help || item.Value} )} @@ -208,7 +220,7 @@ export default function RemoteEditDrawer({ key={backend.Name} startContent={ {backend.Name} @@ -216,7 +228,10 @@ export default function RemoteEditDrawer({ > {backend.Description.includes('Compliant') ? `${backend.Description.split('Compliant')[0]} Compliant` - : backend.Description || backend.Name} + : backend.Description?.replace( + ' (this is not Google Drive)', + '' + ) || backend.Name} ))} diff --git a/src/pages/Settings.tsx b/src/pages/Settings.tsx index e1a494c..f5de5d0 100644 --- a/src/pages/Settings.tsx +++ b/src/pages/Settings.tsx @@ -652,7 +652,7 @@ function LicenseSection() { autoComplete="off" autoCorrect="off" spellCheck="false" - endContent={licenseValid && } + endContent={licenseValid && } data-focus-visible="false" fullWidth={true} /> @@ -705,6 +705,7 @@ function LicenseSection() { isLoading={isRevoking} color="danger" variant="ghost" + size="lg" onPress={async () => { // usePersistedStore.setState({ // licenseKey: undefined, @@ -914,14 +915,18 @@ function RemoteCard({ onDeletePress: () => void }) { const [type, setType] = useState(null) + const [provider, setProvider] = useState(null) - const imageUrl = type ? `/icons/${type}.png` : undefined + const imageUrl = provider ? `/icons/providers/${provider}.png` : `/icons/backends/${type}.png` useEffect(() => { const loadRemoteConfig = async () => { try { const remoteInfo = await getRemote(remote) setType(remoteInfo.type) + if (remoteInfo.provider) { + setProvider(remoteInfo.provider) + } } catch (error) { console.error('[RemoteCard] Failed to load remote config:', error) }