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; +}