summaryrefslogtreecommitdiff
path: root/web/source/settings/lib
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2024-05-07 19:48:12 +0200
committerLibravatar GitHub <noreply@github.com>2024-05-07 19:48:12 +0200
commit578a4e0cf520c781af932f37be6fada706a3fe3c (patch)
treed0b4f13a2828a03d946e8138820f32f958aaa4fb /web/source/settings/lib
parentbump modernc.org/sqlite v1.29.8 -> v1.29.9 (concurrency workaround) (#2906) (diff)
downloadgotosocial-578a4e0cf520c781af932f37be6fada706a3fe3c.tar.xz
[bugfix] Reset emoji fields on upload error (#2905)
Diffstat (limited to 'web/source/settings/lib')
-rw-r--r--web/source/settings/lib/form/file.tsx37
1 files changed, 20 insertions, 17 deletions
diff --git a/web/source/settings/lib/form/file.tsx b/web/source/settings/lib/form/file.tsx
index 944d77ae1..cf9407827 100644
--- a/web/source/settings/lib/form/file.tsx
+++ b/web/source/settings/lib/form/file.tsx
@@ -27,6 +27,7 @@ import type {
HookOpts,
FileFormInputHook,
} from "./types";
+import { Error as ErrorC } from "../../components/error";
const _default = undefined;
export default function useFileInput(
@@ -41,6 +42,15 @@ export default function useFileInput(
const [imageURL, setImageURL] = useState<string>();
const [info, setInfo] = useState<React.JSX.Element>();
+ function reset() {
+ if (imageURL) {
+ URL.revokeObjectURL(imageURL);
+ }
+ setImageURL(undefined);
+ setFile(undefined);
+ setInfo(undefined);
+ }
+
function onChange(e: React.ChangeEvent<HTMLInputElement>) {
const files = e.target.files;
if (!files) {
@@ -59,25 +69,18 @@ export default function useFileInput(
setImageURL(URL.createObjectURL(file));
}
- let size = prettierBytes(file.size);
+ const sizePrettier = prettierBytes(file.size);
if (maxSize && file.size > maxSize) {
- size = <span className="error-text">{size}</span>;
+ const maxSizePrettier = prettierBytes(maxSize);
+ setInfo(
+ <ErrorC
+ error={new Error(`file size ${sizePrettier} is larger than max size ${maxSizePrettier}`)}
+ reset={(reset)}
+ />
+ );
+ } else {
+ setInfo(<>{file.name} ({sizePrettier})</>);
}
-
- setInfo(
- <>
- {file.name} ({size})
- </>
- );
- }
-
- function reset() {
- if (imageURL) {
- URL.revokeObjectURL(imageURL);
- }
- setImageURL(undefined);
- setFile(undefined);
- setInfo(undefined);
}
const infoComponent = (