diff --git a/packages/fakeyou.com/package.json b/packages/fakeyou.com/package.json index 4b797df8cf..abf7a97ce9 100644 --- a/packages/fakeyou.com/package.json +++ b/packages/fakeyou.com/package.json @@ -70,6 +70,7 @@ "react-share": "^4.4.1", "react-twitch-embed": "^3.0.1", "react-wavesurfer.js": "^0.0.8", + "react-range-slider-input": "^3.0.7", "sass": "^1.57.1", "typescript": "^3.7.5", "universal-cookie": "^6.1.1", diff --git a/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.scss b/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.scss index 5d1b48bf16..801687a57e 100644 --- a/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.scss +++ b/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.scss @@ -1,8 +1,9 @@ +@import "scss/colours.scss"; + .fy-number-slider { display: flex; - gap: 2rem; + gap: 0.5rem; align-items: center; - margin-bottom: .75rem; .fy-number-slider-range { flex-grow: 1; @@ -13,28 +14,29 @@ width: fit-content; padding: 6px; border-radius: 8px; - background-color: #2f2f42; - border-width: 1px; - border-color: rgba(#fff, 0.12); + 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: .5rem; - width: 100%; - margin: 0 0 0 .6875rem; // margin half width of thumb, so that thumb does not overlap margins at minimum position + 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: .25rem; + border-radius: 0.25rem; } .fy-number-slider-thumb { - height: 1.375rem; - width: 1.375rem; + height: 16px; + width: 16px; background-color: #e66462; border-radius: 50%; box-shadow: 0px 0px 10px rgba(#000, 0.15); - &:hover { background-color: #fff } + &:hover { + background-color: #fff; + } } -} \ No newline at end of file +} diff --git a/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.tsx b/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.tsx index 6d7a583673..fd8eb4f424 100644 --- a/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.tsx +++ b/packages/fakeyou.com/src/components/common/NumberSlider/NumberSlider.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React from "react"; import { Range } from "react-range"; import Tippy from "@tippyjs/react"; import { Label } from "components/common"; @@ -6,38 +6,87 @@ import "./NumberSlider.scss"; interface Props { label?: string; - max?: number, - min?: number, - name?: string, - onChange?: any, - required?: boolean, - step?: number, - thumbTip?: string, - value?: number + max?: number; + min?: number; + name?: string; + onChange?: any; + required?: boolean; + step?: number; + thumbTip?: string; + value?: number; } -const renderTrack = ({ props: { style, ...props }, children }: any) => +const renderTrack = ({ props: { style, ...props }, children }: any) => (
- { children } -
; + {children} + +); -const thumb = (thumbTip = "") => ({ props: { style, ...props }}: any) => { - return -
-
-}; +const thumb = + (thumbTip = "") => + ({ props: { style, ...props } }: any) => { + return ( + +
+
+ ); + }; -export default function NumberSlider({ label, max, min, name, onChange: inChange = () => {}, required, step = 1, thumbTip, value = 0 }: Props) { +export default function NumberSlider({ + label, + max, + min, + name, + onChange: inChange = () => {}, + required, + step = 1, + thumbTip, + value = 0, +}: Props) { + const onChange = (newVal: number[]) => + inChange({ + target: { ...(name && { name }), type: "number", value: newVal[0] }, + }); - const onChange = (newVal: number[]) => inChange({ target: { ...name && { name }, type: "number", value: newVal[0] }}); - - return <> -