diff --git a/src/website/packages/components/src/api/index.tsx b/src/website/packages/components/src/api/index.tsx index 888a89a970..bf162cb57c 100644 --- a/src/website/packages/components/src/api/index.tsx +++ b/src/website/packages/components/src/api/index.tsx @@ -2,12 +2,16 @@ import { FetchStatus } from "./_common/SharedFetchTypes"; import { MediaFileType, GetMediaByUser } from "./media_files"; import { Weight, ListWeights, ListFeaturedWeights } from "./weights"; import { GetBookmarksByUser } from "./bookmarks/GetBookmarksByUser"; +import { MediaFileClass } from "./enums/MediaFileClass"; +import { BucketConfig } from "./BucketConfig"; export type { MediaFileType, Weight }; export { + BucketConfig, FetchStatus, GetBookmarksByUser, GetMediaByUser, ListWeights, ListFeaturedWeights, + MediaFileClass, }; diff --git a/src/website/packages/fakeyou.com/src/components/common/Button/Button.tsx b/src/website/packages/fakeyou.com/src/components/common/Button/Button.tsx index 478232e783..336a941b17 100644 --- a/src/website/packages/fakeyou.com/src/components/common/Button/Button.tsx +++ b/src/website/packages/fakeyou.com/src/components/common/Button/Button.tsx @@ -10,6 +10,7 @@ export default function Button({ buttonRef, label, icon, + onClick, small, variant: variantProps = "primary", to, @@ -74,6 +75,7 @@ export default function Button({ square ? (small ? "button-square-small" : "button-square") : "" } button-${variant} ${full ? "w-100" : ""}`, disabled: disabled || isLoading, + onClick, }; delete rest.className; @@ -95,18 +97,14 @@ export default function Button({ ); const WrappedButton = to ? ( - - {ButtonContent} - + {ButtonContent} ) : href ? ( {ButtonContent} diff --git a/src/website/packages/fakeyou.com/src/components/common/Button/ButtonProps.tsx b/src/website/packages/fakeyou.com/src/components/common/Button/ButtonProps.tsx index f58aa238d3..f904397a8b 100644 --- a/src/website/packages/fakeyou.com/src/components/common/Button/ButtonProps.tsx +++ b/src/website/packages/fakeyou.com/src/components/common/Button/ButtonProps.tsx @@ -5,6 +5,7 @@ export default interface ButtonProps extends ButtonHTMLAttributes { buttonRef?: any; label?: string | null; + onClick?: (e: any) => any; icon?: IconDefinition; small?: boolean; variant?: string; diff --git a/src/website/packages/fakeyou.com/src/components/layout/InferenceJobsList/InferenceJobsList.scss b/src/website/packages/fakeyou.com/src/components/layout/InferenceJobsList/InferenceJobsList.scss index a858c3ba58..a6153b3246 100644 --- a/src/website/packages/fakeyou.com/src/components/layout/InferenceJobsList/InferenceJobsList.scss +++ b/src/website/packages/fakeyou.com/src/components/layout/InferenceJobsList/InferenceJobsList.scss @@ -55,10 +55,11 @@ $primary-transparent: rgba($primary, 0.75); .fy-inference-jobs-list-grid { display: grid; - grid-template-columns: 2.25rem fit-content(100px) minmax(0, 1fr) minmax( + grid-template-columns: min-content fit-content(100px) minmax(0, 1fr) minmax( min-content, 1fr ); + // grid-template-rows: 4rem; gap: 1rem 0; .work-indicator { @@ -75,7 +76,7 @@ $primary-transparent: rgba($primary, 0.75); .fy-inference-job-hover-on, .fy-inference-job-hover-off { - padding: 0.5rem; + padding: 0.75rem; // &:first-of-type { } } @@ -83,6 +84,12 @@ $primary-transparent: rgba($primary, 0.75); .fy-inference-job-success { cursor: pointer; + button { + height: 2.25rem; + width: 2.25rem; + margin: auto 0 auto 1rem; + } + &.fy-inference-job-hover-on { background-color: $panel-inner; } @@ -90,8 +97,8 @@ $primary-transparent: rgba($primary, 0.75); .fy-inference-job-indicator { border-radius: 0.5rem 0 0 0.5rem; - margin-left: -0.5rem; - padding-right: 0; + // margin-left: -0.5rem; + // padding-right: 0; .fy-inference-job-indicator-container { // background-color: red; @@ -162,7 +169,7 @@ $primary-transparent: rgba($primary, 0.75); } .fy-inference-job-action-frame { - margin-right: -0.5rem; + // margin-right: -0.5rem; position: relative; padding: 0; // width: fit-content; @@ -175,12 +182,8 @@ $primary-transparent: rgba($primary, 0.75); cursor: pointer; margin: auto; white-space: nowrap; - // padding-left: .75rem; - // display: flex; - // align-items: center; border-radius: 0.5rem; - // line-height: 1em; - margin: auto 0 auto auto; + margin: auto 0 auto 1rem; } .job-status-complete-success { @@ -222,6 +225,33 @@ $primary-transparent: rgba($primary, 0.75); // height: 2.25rem; } } + + .fy-inference-job-preview { + // background-color: red; + // grid-column-start: 1; + // grid-column-end: five; + + .fy-inference-job-preview-thumb { + // background-color: blue; + // margin: 3rem 0; + height: 3.25rem; + width: fit-content; + overflow: hidden; + aspect-ratio: 4/3; + position: relative; + + .fy-inference-job-preview-static, + .fy-inference-job-preview-gif { + position: absolute; + border-radius: 0.5rem; + width: auto; + height: 100%; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + } + } } .fy-job-queue-ticker { diff --git a/src/website/packages/fakeyou.com/src/components/layout/InferenceJobsList/JobItem.tsx b/src/website/packages/fakeyou.com/src/components/layout/InferenceJobsList/JobItem.tsx index 1c94a612f3..22c54fe212 100644 --- a/src/website/packages/fakeyou.com/src/components/layout/InferenceJobsList/JobItem.tsx +++ b/src/website/packages/fakeyou.com/src/components/layout/InferenceJobsList/JobItem.tsx @@ -5,17 +5,21 @@ import { FrontendInferenceJobType, InferenceJob, } from "@storyteller/components/src/jobs/InferenceJob"; +import { MediaFile } from "@storyteller/components/src/api/media_files/GetMedia"; import { CancelJob, CancelJobResponse, } from "@storyteller/components/src/api/jobs/CancelJob"; -import { useHover, useSlides } from "hooks"; +import { MediaURLs, useHover, useMedia, useSlides } from "hooks"; import { JobState, jobStateCanChange, } from "@storyteller/components/src/jobs/JobStates"; +import { Button } from "components/common"; import { useHistory } from "react-router-dom"; import { STYLES_BY_KEY } from "common/StyleOptions"; +import JobResultPreview from "./JobResultPreview"; +import { faArrowDownToLine } from "@fortawesome/pro-solid-svg-icons"; interface JobListItem extends InferenceJob { failures: (fail: string) => string; @@ -28,18 +32,56 @@ interface JobListItem extends InferenceJob { const BaseAction = ({ canStop = false, + hover = false, + mediaFile, + maybeResultToken = "", success = false, toggleSlide = () => {}, + urls, +}: { + canStop: boolean; + hover: boolean; + mediaFile: MediaFile; + maybeResultToken: string; + success: boolean; + toggleSlide: () => void; + urls: MediaURLs; }) => canStop || success ? ( - - - + <> + + {success && ( +