workspace with decoupled nostr package
This commit is contained in:
36
packages/app/src/Upload/index.ts
Normal file
36
packages/app/src/Upload/index.ts
Normal file
@ -0,0 +1,36 @@
|
||||
import { useSelector } from "react-redux";
|
||||
import { RootState } from "State/Store";
|
||||
import NostrBuild from "Upload/NostrBuild";
|
||||
import VoidCat from "Upload/VoidCat";
|
||||
import NostrImg from "./NostrImg";
|
||||
|
||||
export interface UploadResult {
|
||||
url?: string;
|
||||
error?: string;
|
||||
}
|
||||
|
||||
export interface Uploader {
|
||||
upload: (f: File | Blob, filename: string) => Promise<UploadResult>;
|
||||
}
|
||||
|
||||
export default function useFileUpload(): Uploader {
|
||||
const fileUploader = useSelector((s: RootState) => s.login.preferences.fileUploader);
|
||||
|
||||
switch (fileUploader) {
|
||||
case "nostr.build": {
|
||||
return {
|
||||
upload: NostrBuild,
|
||||
} as Uploader;
|
||||
}
|
||||
case "nostrimg.com": {
|
||||
return {
|
||||
upload: NostrImg,
|
||||
} as Uploader;
|
||||
}
|
||||
default: {
|
||||
return {
|
||||
upload: VoidCat,
|
||||
} as Uploader;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user