Fix avatar and optimise images somewhat
This commit is contained in:
@@ -11,7 +11,14 @@ import Svg from 'src/components/Svg/Svg.js'
|
|||||||
const CLOUDINARY_UPLOAD_PRESET = "CadHub_project_images";
|
const CLOUDINARY_UPLOAD_PRESET = "CadHub_project_images";
|
||||||
const CLOUDINARY_UPLOAD_URL = "https://api.cloudinary.com/v1_1/irevdev/upload";
|
const CLOUDINARY_UPLOAD_URL = "https://api.cloudinary.com/v1_1/irevdev/upload";
|
||||||
|
|
||||||
export default function ImageUploader({ onImageUpload, imageUrl, aspectRatio, className, isEditable }) {
|
export default function ImageUploader({
|
||||||
|
onImageUpload,
|
||||||
|
imageUrl,
|
||||||
|
aspectRatio,
|
||||||
|
className,
|
||||||
|
isEditable,
|
||||||
|
width=600
|
||||||
|
}) {
|
||||||
const [isModalOpen, setIsModalOpen] = useState(false)
|
const [isModalOpen, setIsModalOpen] = useState(false)
|
||||||
const [file, setFile] = useState()
|
const [file, setFile] = useState()
|
||||||
const [cloudinaryId, setCloudinaryId] = useState(imageUrl)
|
const [cloudinaryId, setCloudinaryId] = useState(imageUrl)
|
||||||
@@ -61,7 +68,7 @@ export default function ImageUploader({ onImageUpload, imageUrl, aspectRatio, cl
|
|||||||
className="object-cover w-full h-full rounded shadow overflow-hidden"
|
className="object-cover w-full h-full rounded shadow overflow-hidden"
|
||||||
cloudName="irevdev"
|
cloudName="irevdev"
|
||||||
publicId={cloudinaryId || 'CadHub/eia1kwru54g2kf02s2xx'}
|
publicId={cloudinaryId || 'CadHub/eia1kwru54g2kf02s2xx'}
|
||||||
width="600"
|
width={width}
|
||||||
crop="scale"
|
crop="scale"
|
||||||
/>
|
/>
|
||||||
</div>}
|
</div>}
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ const PartProfile = ({userPart, isEditable, onSave, loading, error}) => {
|
|||||||
onImageUpload={() => {}}
|
onImageUpload={() => {}}
|
||||||
aspectRatio={1}
|
aspectRatio={1}
|
||||||
imageUrl={userPart.image === 'abc' ? '': userPart.image}
|
imageUrl={userPart.image === 'abc' ? '': userPart.image}
|
||||||
|
width={300}
|
||||||
/>
|
/>
|
||||||
<h4 className="text-indigo-800 text-xl underline text-right py-4">{userPart?.name}</h4>
|
<h4 className="text-indigo-800 text-xl underline text-right py-4">{userPart?.name}</h4>
|
||||||
<div className="h-px bg-indigo-200 mb-4" />
|
<div className="h-px bg-indigo-200 mb-4" />
|
||||||
@@ -92,6 +93,7 @@ const PartProfile = ({userPart, isEditable, onSave, loading, error}) => {
|
|||||||
aspectRatio={16/9}
|
aspectRatio={16/9}
|
||||||
isEditable={isEditable}
|
isEditable={isEditable}
|
||||||
imageUrl={input?.mainImage}
|
imageUrl={input?.mainImage}
|
||||||
|
width={1010}
|
||||||
/>}
|
/>}
|
||||||
<div name="description" className="markdown-overrides rounded-lg shadow-md bg-white p-12 my-8 min-h-md">
|
<div name="description" className="markdown-overrides rounded-lg shadow-md bg-white p-12 my-8 min-h-md">
|
||||||
<Editor
|
<Editor
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ const UserProfile = ({user, isEditable, loading, onSave, error}) => {
|
|||||||
aspectRatio={1}
|
aspectRatio={1}
|
||||||
isEditable={isEditable}
|
isEditable={isEditable}
|
||||||
imageUrl={user.image === 'abc' ? '': user.image}
|
imageUrl={user.image === 'abc' ? '': user.image}
|
||||||
|
width={300}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="ml-6 flex flex-col justify-between">
|
<div className="ml-6 flex flex-col justify-between">
|
||||||
|
|||||||
@@ -2,13 +2,25 @@ import { Link, routes } from '@redwoodjs/router'
|
|||||||
import { useAuth } from '@redwoodjs/auth'
|
import { useAuth } from '@redwoodjs/auth'
|
||||||
import { Flash } from '@redwoodjs/web'
|
import { Flash } from '@redwoodjs/web'
|
||||||
import Tooltip from '@material-ui/core/Tooltip';
|
import Tooltip from '@material-ui/core/Tooltip';
|
||||||
|
import { useQuery } from '@redwoodjs/web'
|
||||||
|
|
||||||
|
export const QUERY = gql`
|
||||||
|
query FIND_USER_BY_ID($id: String!) {
|
||||||
|
user: user(id: $id) {
|
||||||
|
id
|
||||||
|
image
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
import avatar from 'src/assets/harold.jpg'
|
import avatar from 'src/assets/harold.jpg'
|
||||||
import Svg from 'src/components/Svg'
|
import Svg from 'src/components/Svg'
|
||||||
|
import ImageUploader from 'src/components/ImageUploader'
|
||||||
import logo from 'src/layouts/MainLayout/Logo_2.jpg'
|
import logo from 'src/layouts/MainLayout/Logo_2.jpg'
|
||||||
|
|
||||||
const MainLayout = ({ children }) => {
|
const MainLayout = ({ children }) => {
|
||||||
const { logIn, logOut, isAuthenticated } = useAuth()
|
const { logIn, logOut, isAuthenticated, currentUser } = useAuth()
|
||||||
|
const {data, loading} = useQuery(QUERY, {variables: {id: currentUser?.sub}})
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<header>
|
<header>
|
||||||
@@ -34,14 +46,20 @@ const MainLayout = ({ children }) => {
|
|||||||
<ul className="flex items-center">
|
<ul className="flex items-center">
|
||||||
<li className="mr-8 h-10 w-10 rounded-full border-2 border-indigo-300 flex items-center justify-center">
|
<li className="mr-8 h-10 w-10 rounded-full border-2 border-indigo-300 flex items-center justify-center">
|
||||||
{/* <Link to={routes.newPart()}> */}
|
{/* <Link to={routes.newPart()}> */}
|
||||||
<Svg name="plus" className="text-indigo-300" />
|
<Svg name="plus" className="text-indigo-300 w-full h-full" />
|
||||||
{/* </Link> */}
|
{/* </Link> */}
|
||||||
</li>
|
</li>
|
||||||
{
|
{
|
||||||
isAuthenticated ?
|
isAuthenticated ?
|
||||||
<li className="h-10 w-10 border-2 rounded-full border-indigo-300 text-indigo-200">
|
<li className="h-10 w-10 border-2 rounded-full border-indigo-300 text-indigo-200">
|
||||||
<a href="#" onClick={logOut}>
|
<a href="#" onClick={logOut}>
|
||||||
<img src={avatar} className="rounded-full object-cover" />
|
{!loading && <ImageUploader
|
||||||
|
className="rounded-full object-cover"
|
||||||
|
onImageUpload={() => {}}
|
||||||
|
aspectRatio={1}
|
||||||
|
imageUrl={data?.user?.image === 'abc' ? '': data?.user?.image}
|
||||||
|
width={80}
|
||||||
|
/>}
|
||||||
</a>
|
</a>
|
||||||
</li>:
|
</li>:
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
Reference in New Issue
Block a user