diff --git a/packages/fakeyou.com/src/components/common/Accordion/Accordion.tsx b/packages/fakeyou.com/src/components/common/Accordion/Accordion.tsx
index 206b841044..f44214a189 100644
--- a/packages/fakeyou.com/src/components/common/Accordion/Accordion.tsx
+++ b/packages/fakeyou.com/src/components/common/Accordion/Accordion.tsx
@@ -11,6 +11,7 @@ import { faChevronDown } from "@fortawesome/pro-solid-svg-icons";
import { animated, useSpring } from "@react-spring/web";
interface AccordionProps {
+ className?: string;
children: React.ReactNode;
}
@@ -96,7 +97,7 @@ function AccordionItem({
);
}
-function Accordion({ children }: AccordionProps) {
+function Accordion({ children, className }: AccordionProps) {
// Extract titles of items that should be initially open
const defaultOpenTitles = React.Children.toArray(children)
.filter((child: any) => child.props.defaultOpen)
@@ -115,7 +116,9 @@ function Accordion({ children }: AccordionProps) {
return (
- {children}
+
+ {children}
+
);
}
diff --git a/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx b/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx
index 5ff6a88a26..888d49c8df 100644
--- a/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx
+++ b/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx
@@ -12,8 +12,8 @@ import Button from "components/common/Button";
import useWeightTypeInfo from "hooks/useWeightTypeInfo/useWeightTypeInfo";
import WeightCoverImage from "components/common/WeightCoverImage";
import { BucketConfig } from "@storyteller/components/src/api/BucketConfig";
-import useToken from "hooks/useToken";
import getCardUrl from "../getCardUrl";
+// import getCardUrl from "../getCardUrl";
interface AudioCardProps {
bookmarks?: any;
@@ -24,8 +24,8 @@ interface AudioCardProps {
source?: string;
type: "media" | "weights";
inSelectModal?: boolean;
- onClick?: (e:any) => any;
- onResultSelect?: () => void;
+ onResultSelect?: (data: { token: string; title: string }) => void;
+ // onClick?: (e:any) => any;
}
export default function AudioCard({
@@ -37,11 +37,10 @@ export default function AudioCard({
source = "",
type,
inSelectModal = false,
- onClick: inClick,
+ // onClick: inClick,
onResultSelect,
}: AudioCardProps) {
- const { setToken, setWeightTitle } = useToken();
- const linkUrl = getCardUrl(data,source,type);
+ const linkUrl = getCardUrl(data, source, type);
const history = useHistory();
const handleInnerClick = (event: any) => {
@@ -49,10 +48,11 @@ export default function AudioCard({
};
const handleSelectModalResultSelect = () => {
- if (inSelectModal) {
- setToken(data.weight_token);
- setWeightTitle && setWeightTitle(data.title);
- onResultSelect && onResultSelect();
+ if (inSelectModal && onResultSelect) {
+ onResultSelect({
+ token: data.weight_token,
+ title: data.title,
+ });
}
};
@@ -85,10 +85,6 @@ export default function AudioCard({
}
}
- // const onClick = () => {
- // if (inClick) inClick(data);
- // };
-
const card = (
- {inClick ? (
+ {inSelectModal ? (
);
diff --git a/packages/fakeyou.com/src/components/common/Card/WeightsCards.tsx b/packages/fakeyou.com/src/components/common/Card/WeightsCards.tsx
index 828b14a6d7..b1fe9c0179 100644
--- a/packages/fakeyou.com/src/components/common/Card/WeightsCards.tsx
+++ b/packages/fakeyou.com/src/components/common/Card/WeightsCards.tsx
@@ -13,7 +13,7 @@ export default function WeightsCards({ props, type }: Props) {
case WeightCategory.TTS:
case WeightCategory.VC:
case WeightCategory.ZS:
- return ;
+ return ;
case WeightCategory.SD:
return ;
default:
diff --git a/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.tsx b/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.tsx
index 6af7e0edeb..bb3b425fd7 100644
--- a/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.tsx
+++ b/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.tsx
@@ -8,12 +8,16 @@ interface Props {
label?: string;
max?: number;
min?: number;
- name?: string;
- onChange?: any;
required?: boolean;
step?: number;
thumbTip?: string;
+ // name, value and setter for onChange has to be in this particular format
+ // name = state variable's name as a stringh
+ // value = the state variable's reference
+ // onChange = the statevariable's setter function's reference
+ name?: string;
value?: number;
+ onChange?: any;
}
const renderTrack = ({ props: { style, ...props }, children }: any) => (
diff --git a/packages/fakeyou.com/src/components/common/NumberSliderV2/NumberSliderV2.scss b/packages/fakeyou.com/src/components/common/NumberSliderV2/NumberSliderV2.scss
new file mode 100644
index 0000000000..801687a57e
--- /dev/null
+++ b/packages/fakeyou.com/src/components/common/NumberSliderV2/NumberSliderV2.scss
@@ -0,0 +1,42 @@
+@import "scss/colours.scss";
+
+.fy-number-slider {
+ display: flex;
+ gap: 0.5rem;
+ align-items: center;
+
+ .fy-number-slider-range {
+ flex-grow: 1;
+ }
+
+ .fy-number-slider-value {
+ text-align: center;
+ width: fit-content;
+ padding: 6px;
+ border-radius: 8px;
+ background-color: $secondary;
+ border-width: 0px;
+ border-color: none;
+ color: rgba(#fff, 0.85);
+ font-weight: 500;
+ flex-shrink: 0;
+ }
+
+ .fy-number-slider-track {
+ height: 6px;
+ margin: 0 0 0 0.6875rem; // margin half width of thumb, so that thumb does not overlap margins at minimum position
+ background-color: #4f4f66;
+ border-radius: 0.25rem;
+ }
+
+ .fy-number-slider-thumb {
+ height: 16px;
+ width: 16px;
+ background-color: #e66462;
+ border-radius: 50%;
+ box-shadow: 0px 0px 10px rgba(#000, 0.15);
+ &:hover {
+ background-color: #fff;
+ }
+ }
+}
diff --git a/packages/fakeyou.com/src/components/common/NumberSliderV2/NumberSliderV2.tsx b/packages/fakeyou.com/src/components/common/NumberSliderV2/NumberSliderV2.tsx
new file mode 100644
index 0000000000..4796403494
--- /dev/null
+++ b/packages/fakeyou.com/src/components/common/NumberSliderV2/NumberSliderV2.tsx
@@ -0,0 +1,93 @@
+import React from "react";
+import { Range } from "react-range";
+import Tippy from "@tippyjs/react";
+import { Label } from "components/common";
+import "./NumberSliderV2.scss";
+
+interface Props {
+ label?: string;
+ thumbTip?: string;
+ min: number;
+ max: number;
+ step?: number;
+ initialValue?: number;
+ onChange?: (x:number) => void;
+ required?: boolean;
+}
+
+function roundToStep(x:number, step:number){
+ return Math.round(x/step) * step;
+}
+
+const renderTrack = ({ props: { style, ...props }, children }: any) => (
+
+ {children}
+
+);
+
+const thumb =
+ (thumbTip = "") =>
+ ({ props: { style, ...props } }: any) => {
+ return (
+
+
+
+ );
+ };
+
+export default function NumberSlider({
+ label,
+ thumbTip,
+ min,
+ max,
+ step: stepProps,
+ onChange: onChangeCallback,
+ required,
+ initialValue: initialValueProps,
+}: Props) {
+ const step = stepProps && stepProps <= max-min ? stepProps
+ : max-min >= 1 ? 1 : (max-min) / 10;
+ const initialValue = initialValueProps && initialValueProps <= max && initialValueProps >= min ? initialValueProps
+ : max-min === step ? min : roundToStep((max+min)/2, step);
+
+ function handleInputOnChange(e: React.ChangeEvent){
+ if(onChangeCallback)onChangeCallback(Number.parseInt(e.target.value))
+ }
+ function handleRangeOnChange(rangeValue: number[]){
+ if(onChangeCallback)onChangeCallback(rangeValue[0])
+ }
+
+ return (
+
+ );
+}
diff --git a/packages/fakeyou.com/src/components/common/NumberSliderV2/index.ts b/packages/fakeyou.com/src/components/common/NumberSliderV2/index.ts
new file mode 100644
index 0000000000..66ed0c89fb
--- /dev/null
+++ b/packages/fakeyou.com/src/components/common/NumberSliderV2/index.ts
@@ -0,0 +1 @@
+export { default } from './NumberSliderV2';
\ No newline at end of file
diff --git a/packages/fakeyou.com/src/components/common/Searcher/Searcher.tsx b/packages/fakeyou.com/src/components/common/Searcher/Searcher.tsx
index abd073d612..c1e7a5bb69 100644
--- a/packages/fakeyou.com/src/components/common/Searcher/Searcher.tsx
+++ b/packages/fakeyou.com/src/components/common/Searcher/Searcher.tsx
@@ -17,7 +17,7 @@ interface SearcherProps {
type?: "page" | "modal";
dataType?: "media" | "weights";
weightType?: string;
- onResultSelect?: () => void;
+ onResultSelect?: (data:{token:string, title:string}) => void;
searcherKey: string;
}
diff --git a/packages/fakeyou.com/src/components/common/SelectModal/SelectMediaList.tsx b/packages/fakeyou.com/src/components/common/SelectModal/SelectMediaList.tsx
index 6c84003cfd..840dfcc60b 100644
--- a/packages/fakeyou.com/src/components/common/SelectModal/SelectMediaList.tsx
+++ b/packages/fakeyou.com/src/components/common/SelectModal/SelectMediaList.tsx
@@ -10,7 +10,7 @@ import { ListMediaFiles } from "@storyteller/components/src/api/media_files/List
interface SelectMediaListProps {
mediaType: string;
listKey: string;
- onResultSelect?: () => void;
+ onResultSelect?: (data:{token:string, title:string}) => void;
}
export default function SelectMediaList({
diff --git a/packages/fakeyou.com/src/components/common/SelectModal/SelectModal.tsx b/packages/fakeyou.com/src/components/common/SelectModal/SelectModal.tsx
index b4e6e8dba1..d48c17b3ba 100644
--- a/packages/fakeyou.com/src/components/common/SelectModal/SelectModal.tsx
+++ b/packages/fakeyou.com/src/components/common/SelectModal/SelectModal.tsx
@@ -4,7 +4,6 @@ import Modal from "../Modal";
import NonRouteTabs from "../Tabs/NonRouteTabs";
import Input from "../Input";
import Button from "../Button";
-import useToken from "hooks/useToken";
import { faTrash } from "@fortawesome/free-solid-svg-icons";
import SelectMediaList from "./SelectMediaList";
import SelectWeightsList from "./SelectWeightsList";
@@ -21,7 +20,10 @@ interface SelectModalProps {
label?: string;
tabs: TabConfig[];
modalTitle?: string;
- onSelect?: (token: string) => void;
+ onSelect?: (data:{
+ token: string,
+ title: string,
+ }) => void;
required?: boolean;
}
@@ -34,8 +36,8 @@ const SelectModal = memo(
required,
}: SelectModalProps) => {
const [isModalOpen, setIsModalOpen] = useState(false);
- const { token, setToken, weightTitle, setWeightTitle } = useToken();
- const [selectedValue, setSelectedValue] = useState("");
+ const initialValue = {token:"", title:""};
+ const [selectedValue, setSelectedValue] = useState(initialValue);
const [activeTab, setActiveTab] = useState(tabs[0].tabKey);
const [mediaType, setMediaType] = useState(
tabs[0].mediaTypeFilter || "all"
@@ -51,19 +53,6 @@ const SelectModal = memo(
setWeightType(currentTab?.weightTypeFilter || "all");
}, [activeTab, tabs]);
- useEffect(() => {
- if (token && token !== selectedValue && onSelect) {
- setSelectedValue(token);
- onSelect(token);
- } else if (weightTitle && weightTitle !== selectedValue && onSelect) {
- setSelectedValue(weightTitle);
- onSelect(weightTitle);
- }
-
- console.log("token", token, "weightTitle", weightTitle);
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, [token, weightTitle]);
-
const openModal = () => {
setIsModalOpen(true);
};
@@ -73,16 +62,21 @@ const SelectModal = memo(
};
const handleRemove = () => {
- setWeightTitle && setWeightTitle("");
- setToken("");
+ setSelectedValue(initialValue);
};
+ const handleOnSelect = (data:{token:string, title:string}) => {
+ setSelectedValue({token: data.token, title: data.title || ""});
+ if (onSelect) onSelect(data);
+ closeModal();
+ }
+
const searchTabs = tabs.map(tab => ({
label: tab.label,
content: tab.searcher ? (
@@ -92,14 +86,14 @@ const SelectModal = memo(
)}
{tab.type === "weights" && (
)}
>
@@ -122,10 +116,12 @@ const SelectModal = memo(
disabled={true}
className="w-100"
placeholder="None selected"
- value={weightTitle ? weightTitle : token || ""}
+ value={selectedValue.title !==""
+ ? selectedValue.title
+ : selectedValue.token || ""}
/>
-
- {token && (
+
+ {selectedValue.token && (
void;
+ onResultSelect?: (data:{token:string, title:string}) => void;
}
export default function SelectWeightsList({
diff --git a/packages/fakeyou.com/src/components/common/SelectModal/index.tsx b/packages/fakeyou.com/src/components/common/SelectModal/index.tsx
new file mode 100644
index 0000000000..34f8ad1385
--- /dev/null
+++ b/packages/fakeyou.com/src/components/common/SelectModal/index.tsx
@@ -0,0 +1 @@
+export { default } from "./SelectModal";
\ No newline at end of file
diff --git a/packages/fakeyou.com/src/components/common/TextAreaV2/TextAreaV2.scss b/packages/fakeyou.com/src/components/common/TextAreaV2/TextAreaV2.scss
new file mode 100644
index 0000000000..d87c7e986e
--- /dev/null
+++ b/packages/fakeyou.com/src/components/common/TextAreaV2/TextAreaV2.scss
@@ -0,0 +1,27 @@
+.fy-textarea {
+ margin-bottom: 1rem;
+
+ &:only-child,
+ &:last-child {
+ margin-bottom: 0;
+ }
+}
+
+.d-flex:not(.flex-column) > .fy-textarea {
+ margin-bottom: 0;
+ margin-right: 0.5rem;
+
+ &:only-child,
+ &:last-child {
+ margin-bottom: 0;
+ }
+}
+
+.gap-1 > .fy-textarea,
+.gap-2 > .fy-textarea,
+.gap-3 > .fy-textarea,
+.gap-4 > .fy-textarea,
+.gap-5 > .fy-textarea {
+ margin-bottom: 0;
+ margin-right: 0;
+}
diff --git a/packages/fakeyou.com/src/components/common/TextAreaV2/TextAreaV2.tsx b/packages/fakeyou.com/src/components/common/TextAreaV2/TextAreaV2.tsx
new file mode 100644
index 0000000000..5b2aa717d4
--- /dev/null
+++ b/packages/fakeyou.com/src/components/common/TextAreaV2/TextAreaV2.tsx
@@ -0,0 +1,39 @@
+import React from "react";
+import "./TextAreaV2.scss";
+
+interface TextAreaProps {
+ label?: string;
+ required?: boolean;
+ placeholder?: string;
+ initialValue?: string;
+ value?: string;
+ onChange?: (newText:string) => void
+}
+
+export default function TextArea({
+ label,
+ required,
+ value,
+ placeholder,
+ onChange: onChangeCallback,
+}: TextAreaProps) {
+ const handleOnChange = (e:React.ChangeEvent)=>{
+ if(onChangeCallback) onChangeCallback (e.target.value);
+ }
+ return (
+
+ {label &&
+
+ }
+
+
+
+
+ );
+}
diff --git a/packages/fakeyou.com/src/components/common/TextAreaV2/index.tsx b/packages/fakeyou.com/src/components/common/TextAreaV2/index.tsx
new file mode 100644
index 0000000000..82ff177308
--- /dev/null
+++ b/packages/fakeyou.com/src/components/common/TextAreaV2/index.tsx
@@ -0,0 +1 @@
+export { default } from "./TextAreaV2";
diff --git a/packages/fakeyou.com/src/components/common/index.tsx b/packages/fakeyou.com/src/components/common/index.tsx
index 7699fb4c28..6869738d39 100644
--- a/packages/fakeyou.com/src/components/common/index.tsx
+++ b/packages/fakeyou.com/src/components/common/index.tsx
@@ -1,3 +1,4 @@
+import Accordion from "./Accordion";
import AudioBlobPreview from "./AudioBlobPreview";
import AudioInput from "./AudioInput";
import BasicVideo from "./BasicVideo";
@@ -16,10 +17,12 @@ import Label from "./Label";
import MocapInput from "./MocapInput";
import Modal from "./Modal";
import NumberSlider from "./NumberSlider";
+import NumberSliderV2 from "./NumberSliderV2";
import Panel from "./Panel";
import Radio from "./Radio";
import SegmentButtons from "./SegmentButtons";
import Select from "./Select";
+import SelectModal from "./SelectModal";
import Skeleton from "./Skeleton";
import Slider from "./Slider";
import Spinner from "./Spinner";
@@ -29,10 +32,13 @@ import TempAudioPlayer from "./TempAudioPlayer";
import TempInput from "./TempInput";
import TempSelect from "./TempSelect";
import TempTextArea from "./TempTextArea";
+import TextArea from "./TextArea";
+import TextAreaV2 from "./TextAreaV2";
import TintSpinner from "./TintSpinner";
import VideoInput from "./VideoInput";
export {
+ Accordion,
AudioBlobPreview,
AudioInput,
BasicVideo,
@@ -51,10 +57,12 @@ export {
MocapInput,
Modal,
NumberSlider,
+ NumberSliderV2,
Panel,
Radio,
SegmentButtons,
Select,
+ SelectModal,
Skeleton,
Slider,
Spinner,
@@ -64,6 +72,8 @@ export {
TempInput,
TempSelect,
TempTextArea,
+ TextArea,
+ TextAreaV2,
TintSpinner,
VideoInput
};
\ No newline at end of file
diff --git a/packages/fakeyou.com/src/components/entities/BvhCard/BvhCard.tsx b/packages/fakeyou.com/src/components/entities/BvhCard/BvhCard.tsx
index 184b2fd144..01e4f27330 100644
--- a/packages/fakeyou.com/src/components/entities/BvhCard/BvhCard.tsx
+++ b/packages/fakeyou.com/src/components/entities/BvhCard/BvhCard.tsx
@@ -1,6 +1,6 @@
import React from "react";
import useTimeAgo from "hooks/useTimeAgo";
-import { MediaFile } from "@storyteller/components/src/api/media_files/GetMedia";
+// import { MediaFile } from "@storyteller/components/src/api/media_files/GetMedia";
import { MakeRatingsProps } from "hooks/useRatings";
import { faPersonWalking } from "@fortawesome/pro-solid-svg-icons";
import { FontAwesomeIcon as Icon } from "@fortawesome/react-fontawesome";
diff --git a/packages/fakeyou.com/src/components/layout/SideNav/SideNav.tsx b/packages/fakeyou.com/src/components/layout/SideNav/SideNav.tsx
index 3d94344135..fc37d2824c 100644
--- a/packages/fakeyou.com/src/components/layout/SideNav/SideNav.tsx
+++ b/packages/fakeyou.com/src/components/layout/SideNav/SideNav.tsx
@@ -15,6 +15,7 @@ import {
faCameraMovie,
faPersonRays,
faMessageImage,
+ faPhotoFilm,
} from "@fortawesome/pro-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import React, { useEffect, useState } from "react";
@@ -371,6 +372,20 @@ export default function SideNav({
+
+
+
+ {t("storytellerFilter")}
+
+
+
-
+
>;
}){
const debug=true;
- const { t } = useLocalize("StorytellerFilter");
- const { NO_FILE, FILE_STAGED, FILE_UPLOADING, FILE_UPLOADED, FILE_SELECTED, FILE_LOADING, FILE_LOADED } = states;
+ const {t} = useLocalize("StorytellerFilter");
+ const { NO_FILE } = states;
const [pageState, dispatchPageState] = useReducer(reducer, {
status: NO_FILE,
});
- const pagePicker = () => {
- switch (pageState.status){
- case NO_FILE:
- case FILE_STAGED:
- case FILE_UPLOADING:
- case FILE_SELECTED:
- return
- case FILE_UPLOADED:
- case FILE_LOADING:
- case FILE_LOADED:
- return
- default:
- return
- }
- }
- const currPage = pagePicker();
-
return(
- {currPage}
+
+
);
}
\ No newline at end of file
diff --git a/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/pageFilterControls.tsx b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/pageFilterControls.tsx
index 57d0b98005..0d90ab03b9 100644
--- a/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/pageFilterControls.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/pageFilterControls.tsx
@@ -1,8 +1,22 @@
-import React from "react";
+import React, {useState, useEffect} from "react";
+import { useParams } from "react-router-dom";
+
import { useMedia } from "hooks";
import { BucketConfig } from "@storyteller/components/src/api/BucketConfig";
import { states, Action, State } from "../storytellerFilterReducer";
-import { BasicVideo, ErrorMessage, Panel, Spinner } from "components/common";
+import {
+ Accordion,
+ BasicVideo,
+ ErrorMessage,
+ NumberSliderV2,
+ Panel,
+ SelectModal,
+ Spinner,
+ TextAreaV2
+} from "components/common";
+
+import { faChevronRight } from "@fortawesome/pro-solid-svg-icons";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
export default function PageFilterControls({
debug=false, t, pageState, dispatchPageState
@@ -12,11 +26,12 @@ export default function PageFilterControls({
pageState: State;
dispatchPageState: (action: Action) => void;
}) {
+ const { mediaToken } = useParams();
+
useMedia({
- mediaToken: pageState.mediaFileToken,
+ mediaToken: pageState.mediaFileToken || mediaToken,
onSuccess: (res: any) => {
// ratings.gather({ res, key: "token" });
- console.log(res)
dispatchPageState({
type: 'loadFileSuccess',
payload: {mediaFile: res}
@@ -24,22 +39,135 @@ export default function PageFilterControls({
},
});
+ const [filterState, setFilterState] = useState({
+ sdModelToken: "",
+ loraModelToken: "",
+ posPrompt: "",
+ negPrompt: "",
+ firstPass: 15,
+ upScalePass: 15
+ });
+ useEffect(()=>{
+ if(debug) console.log(filterState)
+ },[filterState, debug])
+
+ const handleOnChange = (key: string, newValue:any,) => {
+ setFilterState((curr)=>({...curr, [key]: newValue}));
+ }
+
if (pageState.mediaFile){
const mediaLink = new BucketConfig().getGcsUrl(pageState.mediaFile.public_bucket_path);
if (mediaLink)
return(
-
-
- {/*
{t("message.fileUploaded")}
*/}
- {debug &&
{`File Token: ${pageState.mediaFileToken}`}
}
-
-
+ <>
+
+
+ {debug &&
{`File Token: ${pageState.mediaFileToken}`}
}
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+ {
+ handleOnChange("sdModelToken", token);
+ }}
+ tabs={[
+ {
+ label: "All Weights",
+ tabKey: "allWeights",
+ weightTypeFilter: "sdxl",
+ searcher: true,
+ type: "weights",
+ },
+ {
+ label: "Bookmarked",
+ tabKey: "bookmarkedWeights",
+ weightTypeFilter: "sdxl",
+ searcher: false,
+ type: "weights",
+ },
+ ]}
+ />
+ {
+ console.log(`calling from select modal result select ${token}`);
+ handleOnChange("loraModelToken", token);
+ }}
+ tabs={[
+ {
+ label: "All LoRA Weights",
+ tabKey: "allLoraWeights",
+ weightTypeFilter: "rvc_v2",
+ searcher: true,
+ type: "weights",
+ },
+ {
+ label: "Bookmarked",
+ tabKey: "bookmarkedLoraWeights",
+ weightTypeFilter: "rvc_v2",
+ searcher: false,
+ type: "weights",
+ },
+ ]}
+ />
+ handleOnChange("posPrompt", val),
+ value: filterState.posPrompt,
+ required: false,
+ }}
+ />
+ handleOnChange("negPrompt", val),
+ value: filterState.negPrompt,
+ required: false,
+ }}
+ />
+
+
+
+
+ {handleOnChange("firstPass",val)}
+ }}/>
+ {handleOnChange("upScalePass", val)}
+ }}/>
+
+
+
+
+ >
);
}else if (pageState.status <= states.FILE_LOADING){
return (
diff --git a/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/pageVideoProvision.tsx b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/pageVideoProvision.tsx
index 095356ae63..78105ce4d1 100644
--- a/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/pageVideoProvision.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/pageVideoProvision.tsx
@@ -1,9 +1,8 @@
import React from "react";
-import { Redirect, useLocation } from "react-router-dom";
import { BasicVideo, Panel, Tabs } from "components/common";
-import { Action, State } from "../storytellerFilterReducer";
+import { State, Action } from "../storytellerFilterReducer";
import TabContentUpload from "./tabContentUpload";
import TabContentLibrary from "./tabContentLibrary";
@@ -15,6 +14,7 @@ export default function PageVideoProvision({
pageState: State;
dispatchPageState: (action: Action) => void;
}) {
+
const tabs = [
{
label: t("tabTitle.upload"),
@@ -34,12 +34,6 @@ export default function PageVideoProvision({
},
];
- //pick default tab using pathname
- const { pathname } = useLocation();
- if (pathname === "/storyteller-filter" || pathname === "/storyteller-filter/") {
- return
;
- }
-
return(
diff --git a/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/tabContentLibrary.tsx b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/tabContentLibrary.tsx
index 7608460c6f..d9b321c56a 100644
--- a/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/tabContentLibrary.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/tabContentLibrary.tsx
@@ -1,7 +1,9 @@
-import SelectModal from "components/common/SelectModal/SelectModal";
import React from "react";
+import { NavLink } from "react-router-dom";
import { states, Action, State } from "../storytellerFilterReducer";
import { Button } from "components/common";
+import SelectModal from "components/common/SelectModal/SelectModal";
+
export default function TabContentLibrary({
t, pageState, dispatchPageState
}: {
@@ -9,14 +11,13 @@ export default function TabContentLibrary({
pageState: State;
dispatchPageState: (action: Action) => void;
}){
-
const handleProceed = ()=>{
dispatchPageState({type: "loadFile"})
}
- const handleOnSelect = (token:string)=>{
+ const handleOnSelect = (data:{token:string, title:string})=>{
dispatchPageState({
type: "selectedFile",
- payload: {mediaFileToken: token}
+ payload: {mediaFileToken: data.token}
});
};
return (
@@ -35,11 +36,13 @@ export default function TabContentLibrary({
},
]}
/>
- {pageState.status === states.FILE_SELECTED &&
-
+ {pageState.status === states.FILE_SELECTED &&
+
+
+
}
);
diff --git a/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/tabContentUpload.tsx b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/tabContentUpload.tsx
index b985ee9bc8..10fb07c3ac 100644
--- a/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/tabContentUpload.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/components/tabContentUpload.tsx
@@ -1,4 +1,5 @@
import React from "react";
+import { Redirect } from "react-router-dom";
import { v4 as uuidv4 } from "uuid";
import { UploadMedia } from "@storyteller/components/src/api/media_files/UploadMedia";
@@ -15,7 +16,7 @@ export default function TabContentUpload({
dispatchPageState: (action: Action) => void;
}) {
const videoProps = useFile({});
- const {NO_FILE, FILE_STAGED, FILE_UPLOADING} = states;
+ const {NO_FILE, FILE_STAGED, FILE_UPLOADING, FILE_UPLOADED} = states;
const makeVideoUploadRequest = () => ({
uuid_idempotency_token: uuidv4(),
@@ -85,6 +86,10 @@ export default function TabContentUpload({
);
+ }else if (pageState.status === FILE_UPLOADED){
+ return(
+
+ )
}
return ;
}
diff --git a/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/storytellerFilterReducer.tsx b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/storytellerFilterReducer.tsx
index 1362a3ab13..7da0a9e6cd 100644
--- a/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/storytellerFilterReducer.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/storytellerFilterReducer.tsx
@@ -28,7 +28,7 @@ export type Action =
export function reducer (state: State, action: Action): State {
- console.log(action);
+
switch(action.type){
case 'stagedFile':
return {...state, status: states.FILE_STAGED}
diff --git a/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/storytellerFilterRoutes.tsx b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/storytellerFilterRoutes.tsx
new file mode 100644
index 0000000000..ce67ca1a19
--- /dev/null
+++ b/packages/fakeyou.com/src/v2/view/pages/storyteller_filter/storytellerFilterRoutes.tsx
@@ -0,0 +1,34 @@
+import React from "react";
+import {Switch, Route, useRouteMatch, Redirect} from "react-router-dom";
+import PageFilterControls from "./components/pageFilterControls";
+import PageVideoProvision from "./components/pageVideoProvision";
+import {State,Action} from "./storytellerFilterReducer";
+
+export default function SubRoutes ({
+ debug, t, pageState, dispatchPageState
+}:{
+ debug?:boolean,
+ t:Function,
+ pageState:State,
+ dispatchPageState: (action: Action) => void
+}){
+ const { path } = useRouteMatch();
+
+ return(
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
\ No newline at end of file
diff --git a/packages/fakeyou.com/src/v2/view/pages/video_mocap/components/tabContentLibrary.tsx b/packages/fakeyou.com/src/v2/view/pages/video_mocap/components/tabContentLibrary.tsx
index bdfd91ceb4..5d8bd7713c 100644
--- a/packages/fakeyou.com/src/v2/view/pages/video_mocap/components/tabContentLibrary.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/video_mocap/components/tabContentLibrary.tsx
@@ -20,8 +20,8 @@ export default function TabContentLibrary({
payload: { mediaFileToken: token },
});
};
- const handleOnSelect = (token: string) => {
- setToken(token);
+ const handleOnSelect = (data:{token:string,title:string}) => {
+ setToken(data.token);
};
return (
diff --git a/packages/fakeyou.com/src/v2/view/pages/weight/inference_panels/SdInferencePanel.tsx b/packages/fakeyou.com/src/v2/view/pages/weight/inference_panels/SdInferencePanel.tsx
index 05218c3a0a..bfee799413 100644
--- a/packages/fakeyou.com/src/v2/view/pages/weight/inference_panels/SdInferencePanel.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/weight/inference_panels/SdInferencePanel.tsx
@@ -1,16 +1,17 @@
import React, { useRef, useState, memo } from "react";
import {
+ Accordion,
Button,
Input,
Label,
NumberSlider,
Panel,
SegmentButtons,
+ SelectModal,
TempSelect,
TempTextArea,
} from "components/common";
import { onChanger } from "resources";
-import Accordion from "components/common/Accordion";
import {
faRectangleLandscape,
faRectanglePortrait,
@@ -23,7 +24,6 @@ import {
EnqueueImageGenIsError,
} from "@storyteller/components/src/api/image_generation/EnqueueImageGen";
import { FrontendInferenceJobType } from "@storyteller/components/src/jobs/InferenceJob";
-import SelectModal from "components/common/SelectModal/SelectModal";
import { SessionSubscriptionsWrapper } from "@storyteller/components/src/session/SessionSubscriptionsWrapper";
import PremiumLock from "components/PremiumLock";
@@ -46,12 +46,11 @@ function SdInferencePanel({
const [loraToken, setLoraToken] = useState(null);
const [weightToken, setWeightToken] = useState(sd_model_token);
- const handleOnWeightSelect = (token: string) => {
- setWeightToken(token);
+ const handleOnWeightSelect = (data:{token:string,title:string}) => {
+ setWeightToken(data.token);
};
-
- const handleOnSelect = (token: string) => {
- setLoraToken(token);
+ const handleOnSelect = (data:{token:string,title:string}) => {
+ setLoraToken(data.token);
};
const [isEnqueuing, setIsEnqueuing] = useState(false);