From 80bf87529edcd87a5c9ea8859a382fb0036e1cbc Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Sat, 15 Nov 2025 04:56:02 +0530 Subject: [PATCH] ImageUploadField --- src/blog/components/ImageUploadField.tsx | 45 ++++++++++++++++++++++++ src/blog/components/Profile.tsx | 33 +++++------------ src/blog/types/props.ts | 8 +++++ 3 files changed, 61 insertions(+), 25 deletions(-) create mode 100644 src/blog/components/ImageUploadField.tsx diff --git a/src/blog/components/ImageUploadField.tsx b/src/blog/components/ImageUploadField.tsx new file mode 100644 index 0000000..9649b19 --- /dev/null +++ b/src/blog/components/ImageUploadField.tsx @@ -0,0 +1,45 @@ +import * as React from "react"; +import { Box, Button, Avatar, CircularProgress } from "@mui/material"; +import { ImageUploadFieldProps } from "../types/props"; + +export default function ImageUploadField({ + label = "Upload Image", + value, + uploading = false, + onUpload, + size = 64, +}: ImageUploadFieldProps) { + + const imgSrc = value + ? import.meta.env.VITE_API_BASE_URL.replace(/\/+$/, "") + + "/" + + value.replace(/^\/+/, "") + : ""; + + return ( + + + + + + ); +} diff --git a/src/blog/components/Profile.tsx b/src/blog/components/Profile.tsx index b2ee269..72b0aa2 100644 --- a/src/blog/components/Profile.tsx +++ b/src/blog/components/Profile.tsx @@ -6,11 +6,11 @@ import { Typography, IconButton, CircularProgress, - Avatar, Alert, } from '@mui/material'; import ArrowBackRoundedIcon from '@mui/icons-material/ArrowBackRounded'; import { useAuth } from '../providers/Author'; +import ImageUploadField from './ImageUploadField'; interface ProfileProps { onBack: () => void; @@ -120,30 +120,13 @@ export default function Profile({ onBack }: ProfileProps) { Profile - - - - - + void; + size?: number; +}