diff --git a/packages/fakeyou.com/src/components/common/Check/Check.tsx b/packages/fakeyou.com/src/components/common/Check/Check.tsx new file mode 100644 index 0000000000..0c4a988a4d --- /dev/null +++ b/packages/fakeyou.com/src/components/common/Check/Check.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { a, useSpring } from "@react-spring/web"; + +interface Props { + checked?: boolean; +} + +export default function Check({ checked }: Props) { + const style = useSpring({ + config: { tension: 280, friction: 60 }, + strokeDasharray: checked ? '28, 0' : '0,28' + }); + return ; +}; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/common/Check/index.ts b/packages/fakeyou.com/src/components/common/Check/index.ts new file mode 100644 index 0000000000..8478811f5b --- /dev/null +++ b/packages/fakeyou.com/src/components/common/Check/index.ts @@ -0,0 +1 @@ +export { default } from './Check'; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/common/Checkbox/Checkbox.scss b/packages/fakeyou.com/src/components/common/Checkbox/Checkbox.scss new file mode 100644 index 0000000000..3d3cf2d470 --- /dev/null +++ b/packages/fakeyou.com/src/components/common/Checkbox/Checkbox.scss @@ -0,0 +1,12 @@ +@import "scss/colours.scss"; + +.fy-checkbox { + background-color: $primary; + border-radius: .5rem; + cursor: pointer; + display: inline-block; + vertical-align: middle; + height: 2rem; + width: 2rem; + stroke: white; +} \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/common/Checkbox/Checkbox.tsx b/packages/fakeyou.com/src/components/common/Checkbox/Checkbox.tsx index 35fa002acf..949409b055 100644 --- a/packages/fakeyou.com/src/components/common/Checkbox/Checkbox.tsx +++ b/packages/fakeyou.com/src/components/common/Checkbox/Checkbox.tsx @@ -1,6 +1,9 @@ import React from 'react'; -import { useId } from "hooks"; +import { a, useSpring } from "@react-spring/web"; +import { Check } from "components/common"; +import { useHover, useId } from "hooks"; import makeClass from "resources/makeClass"; +import "./Checkbox.scss"; interface Props { checked?: boolean; @@ -10,10 +13,18 @@ interface Props { onChange?: any; } -export default function Checkbox({ checked = false, className = "", label = "", name = "", onChange }: Props) { +export default function Checkbox({ checked, className = "", label = "", name = "", onChange }: Props) { + const [hover, hoverEvents = {}] = useHover({}); + const style = useSpring({ + config: { tension: 120, friction: 14 }, + backgroundColor: checked ? hover ? "#bb5a5d" : "#e66462" : hover ? "#bb5a5d" : "#39394c" + }); + const onClick = ({ target }: any) => onChange({ target: { checked: !checked, name, type: 'checkbox' } }); const id = "checkbox-" + useId(); - return
- - { label && } + return
+ + + + { label && }
}; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/common/SegmentButtons/SegmentButtons.scss b/packages/fakeyou.com/src/components/common/SegmentButtons/SegmentButtons.scss new file mode 100644 index 0000000000..e2589e3233 --- /dev/null +++ b/packages/fakeyou.com/src/components/common/SegmentButtons/SegmentButtons.scss @@ -0,0 +1,30 @@ +@import "scss/colours.scss"; + +.fy-segment-buttons { + display: grid; + grid-auto-flow: column; + grid-auto-columns: 1fr; + gap: 2px; + + li { + background-color: $secondary; + border-radius: .125rem; + cursor: pointer; + display: inline-flex; + flex: 1; + white-space: nowrap; + justify-content: center; + align-items: center; + height: 2rem; + padding: 0 .75rem; + transition: .25s background-color ease-in-out; + + &:hover { background-color: lighten($secondary, 5%) !important; } + &:first-of-type { border-radius: .5rem .125rem .125rem .5rem; } + &:last-of-type { border-radius: .125rem .5rem .5rem .125rem; } + &.fy-selected-segment { + background-color: $primary; + &:hover { background-color: lighten($primary, 5%) !important; } + } + } +} \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/common/SegmentButtons/SegmentButtons.tsx b/packages/fakeyou.com/src/components/common/SegmentButtons/SegmentButtons.tsx new file mode 100644 index 0000000000..d13c2384a6 --- /dev/null +++ b/packages/fakeyou.com/src/components/common/SegmentButtons/SegmentButtons.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import "./SegmentButtons.scss"; + +interface Props { + name?: string; + onChange?: any; + options?: any; + value?: string; +} + +export default function SegmentButtons({ name, onChange, options = [], value: inValue = "" }: Props) { + // const onClick = ({ target }: any) => onChange(); + return ; +}; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/common/SegmentButtons/index.ts b/packages/fakeyou.com/src/components/common/SegmentButtons/index.ts new file mode 100644 index 0000000000..7f140e026f --- /dev/null +++ b/packages/fakeyou.com/src/components/common/SegmentButtons/index.ts @@ -0,0 +1 @@ +export { default } from './SegmentButtons'; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/common/index.tsx b/packages/fakeyou.com/src/components/common/index.tsx index 8f896c4666..63363e3f37 100644 --- a/packages/fakeyou.com/src/components/common/index.tsx +++ b/packages/fakeyou.com/src/components/common/index.tsx @@ -1,4 +1,5 @@ import AudioInput from './AudioInput'; +import Check from './Check'; import Checkbox from './Checkbox'; import FileActions from './FileActions'; import FileDetails from './FileDetails'; @@ -7,11 +8,13 @@ import FileLabel from './FileLabel'; import ImageInput from './ImageInput'; import NumberSlider from './NumberSlider'; import Radio from './Radio'; +import SegmentButtons from './SegmentButtons'; import Slider from './Slider'; import Spinner from './Spinner'; export { AudioInput, + Check, Checkbox, FileActions, FileDetails, @@ -20,6 +23,7 @@ export { ImageInput, NumberSlider, Radio, + SegmentButtons, Slider, Spinner }; \ No newline at end of file diff --git a/packages/fakeyou.com/src/v2/view/pages/lipsync/LipsyncEditor/LipsyncEditor.tsx b/packages/fakeyou.com/src/v2/view/pages/lipsync/LipsyncEditor/LipsyncEditor.tsx index 3df18a83e8..429b822887 100644 --- a/packages/fakeyou.com/src/v2/view/pages/lipsync/LipsyncEditor/LipsyncEditor.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/lipsync/LipsyncEditor/LipsyncEditor.tsx @@ -2,7 +2,7 @@ import React, { useState } from "react"; import { animated, useTransition } from "@react-spring/web"; import { v4 as uuidv4 } from "uuid"; import { useFile, useLocalize } from "hooks"; -import { AudioInput, Checkbox, ImageInput, NumberSlider, Radio, Spinner } from "components/common"; +import { AudioInput, Checkbox, ImageInput, NumberSlider, SegmentButtons, Spinner } from "components/common"; import { springs } from "resources"; import { UploadAudio, @@ -97,9 +97,11 @@ const InputPage = ({ - - - +