diff --git a/packages/components/src/api/weights/UpdateWeight.ts b/packages/components/src/api/weights/UpdateWeight.ts index bbf91f2841..d73e3c3721 100644 --- a/packages/components/src/api/weights/UpdateWeight.ts +++ b/packages/components/src/api/weights/UpdateWeight.ts @@ -1,6 +1,7 @@ import MakeRequest from "../MakeRequest"; export interface UpdateWeightRequest { + cover_image_media_file_token: string; description_markdown: string, description_rendered_html: string, title: string, diff --git a/packages/fakeyou.com/src/components/common/Checkbox/Checkbox.tsx b/packages/fakeyou.com/src/components/common/Checkbox/Checkbox.tsx index 8f3d0b2176..489c2b8ea8 100644 --- a/packages/fakeyou.com/src/components/common/Checkbox/Checkbox.tsx +++ b/packages/fakeyou.com/src/components/common/Checkbox/Checkbox.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { a, useSpring } from "@react-spring/web"; -import { Check } from "components/common"; +import { Check } from "components/svg"; import { useHover, useId } from "hooks"; import makeClass from "resources/makeClass"; import "./Checkbox.scss"; diff --git a/packages/fakeyou.com/src/components/common/FileDetails/FileDetails.tsx b/packages/fakeyou.com/src/components/common/FileDetails/FileDetails.tsx index e809eaad34..c34069d5d5 100644 --- a/packages/fakeyou.com/src/components/common/FileDetails/FileDetails.tsx +++ b/packages/fakeyou.com/src/components/common/FileDetails/FileDetails.tsx @@ -1,16 +1,18 @@ import React from 'react'; +import { a, useSpring } from '@react-spring/web'; import { FontAwesomeIcon as Icon } from "@fortawesome/react-fontawesome"; import { faTrash } from "@fortawesome/pro-solid-svg-icons"; import "./FileDetails.scss"; interface Props { clear?: (file?: any) => void; + disabled?: boolean; file?: any; hideClearDetails?: boolean; icon?: any; } -export default function FileDetails({ clear = () => {}, file, hideClearDetails, icon }: Props) { +export default function FileDetails({ clear = () => {}, disabled, file, hideClearDetails, icon }: Props) { const fileSize = file && file.size >= 1024 * 1024 ? (file.size / 1024 / 1024).toFixed(2) + " MB" @@ -18,7 +20,12 @@ export default function FileDetails({ clear = () => {}, file, hideClearDetails, ? `${Math.floor(file.size / 1024)} KB` : null; - return
+ const style = useSpring({ + config: { mass: 1, tension: 120, friction: 14 }, + opacity: disabled ? 0 : 1 + }); + + return { icon && }
@@ -32,5 +39,5 @@ export default function FileDetails({ clear = () => {}, file, hideClearDetails, { !hideClearDetails && } -
; + ; }; diff --git a/packages/fakeyou.com/src/components/common/ImageInput/ImageInput.scss b/packages/fakeyou.com/src/components/common/ImageInput/ImageInput.scss index c6a2169d5d..2927e32f40 100644 --- a/packages/fakeyou.com/src/components/common/ImageInput/ImageInput.scss +++ b/packages/fakeyou.com/src/components/common/ImageInput/ImageInput.scss @@ -42,6 +42,11 @@ border-radius: 0; } + .placeholder-icon { + height: 10rem; + opacity: .15; + } + .image-placeholder { // background-color: red; fill: $secondary; diff --git a/packages/fakeyou.com/src/components/common/ImageInput/ImageInput.tsx b/packages/fakeyou.com/src/components/common/ImageInput/ImageInput.tsx index 162ef96370..85051f2e54 100644 --- a/packages/fakeyou.com/src/components/common/ImageInput/ImageInput.tsx +++ b/packages/fakeyou.com/src/components/common/ImageInput/ImageInput.tsx @@ -2,18 +2,23 @@ import React, { useState } from "react"; import { a, useSpring } from '@react-spring/web'; import { FileDetails, FileWrapper, FileLabel } from "components/common"; import { faImagePortrait } from "@fortawesome/pro-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { IconDefinition } from "@fortawesome/fontawesome-svg-core"; import "./ImageInput.scss"; const fileTypes = ["JPG", "GIF", "PNG"]; interface Props { blob?: string; + children?: any; clear?: (file?: any) => void; + disabled: boolean; file?: any; hideActions?: boolean; hideClearDetails?: boolean; inputProps?: any; onRest?: () => void; + placeholderIcon?: IconDefinition; success?: boolean; submit?: () => void; working?: boolean; @@ -22,7 +27,7 @@ interface Props { const n = () => {}; -export default function ImageInput({ blob = "", clear = n, file, hideActions, hideClearDetails, inputProps, onRest = n, success = false, submit = n, working = false, ...rest }: Props) { +export default function ImageInput({ blob = "", children, clear = n, disabled, file, hideActions, hideClearDetails, inputProps, onRest = n, placeholderIcon, success = false, submit = n, working = false, ...rest }: Props) { const [loaded,loadedSet] = useState(); const onLoad = () => loadedSet(1); const style = useSpring({ @@ -31,15 +36,17 @@ export default function ImageInput({ blob = "", clear = n, file, hideActions, hi opacity: loaded ? 1 : 0 }); - return + return
{ file ? <> - + + { children } : <> - - - + { placeholderIcon ? : + + + }
{ !file && }
diff --git a/packages/fakeyou.com/src/components/common/TempTextArea/TempTextArea.tsx b/packages/fakeyou.com/src/components/common/TempTextArea/TempTextArea.tsx new file mode 100644 index 0000000000..34dac2cac4 --- /dev/null +++ b/packages/fakeyou.com/src/components/common/TempTextArea/TempTextArea.tsx @@ -0,0 +1,16 @@ +import React from "react"; + +interface TextAreaProps + extends React.TextareaHTMLAttributes { + label?: string; + textArea?: boolean; +} + +export default function TempTextArea({ label, textArea, ...rest }: TextAreaProps) { + return <> + { label && } +
+