MCPcopy Create free account
hub / github.com/ScattrdBlade/bigFileUpload / SettingsComponent

Function SettingsComponent

settings.tsx:713–1287  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

711}
712
713export function SettingsComponent() {
714 const update = useForceUpdater();
715 const { store } = settings;
716 const sharexFileInputRef = React.useRef<HTMLInputElement>(null);
717 const isNest = store.serviceType === ServiceType.NEST;
718 const isEzHost = store.serviceType === ServiceType.EZHOST;
719 const isEncryptingHost = store.serviceType === ServiceType.ENCRYPTINGHOST;
720 const isS3 = store.serviceType === ServiceType.S3;
721 const isZipline = store.serviceType === ServiceType.ZIPLINE;
722 const isCatbox = store.serviceType === ServiceType.CATBOX;
723 const isLitterbox = store.serviceType === ServiceType.LITTERBOX;
724 const isGofile = store.serviceType === ServiceType.GOFILE;
725 const isPixelVault = store.serviceType === ServiceType.PIXELVAULT;
726 const isPixelDrain = store.serviceType === ServiceType.PIXELDRAIN;
727 const isShareX = store.serviceType === ServiceType.SHAREX;
728 const isWebdav = store.serviceType === ServiceType.WEBDAV;
729
730 const validateShareXConfig = () => {
731 try {
732 parseShareXConfig(store.sharexConfig || "");
733 showToast("ShareX config is valid", Toasts.Type.SUCCESS);
734 } catch (error) {
735 const message = error instanceof Error ? error.message : "Invalid ShareX config";
736 showToast(message, Toasts.Type.FAILURE);
737 }
738 };
739
740 const triggerShareXFileUpload = () => {
741 sharexFileInputRef.current?.click();
742 };
743
744 const handleShareXFileUpload = (event: React.ChangeEvent<HTMLInputElement>) => {
745 const file = event.target.files?.[0];
746 if (!file) return;
747
748 const reader = new FileReader();
749 reader.onload = (e: ProgressEvent<FileReader>) => {
750 try {
751 const content = String(e.target?.result || "");
752 const parsed = parseShareXConfig(content);
753 store.sharexConfig = JSON.stringify(parsed, null, 2);
754 update();
755 showToast("Imported ShareX config", Toasts.Type.SUCCESS);
756 } catch (error) {
757 const message = error instanceof Error ? error.message : "Failed to import ShareX config";
758 showToast(message, Toasts.Type.FAILURE);
759 }
760 };
761 reader.readAsText(file);
762 event.target.value = "";
763 };
764
765 return (
766 <>
767 <SettingsSection id="upload-service" name="Upload Service" description="Choose where BigFileUpload sends new files.">
768 <ServicePicker
769 value={store.serviceType as ServiceType}
770 onChange={service => {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected