diff --git a/packages/harmony/src/components/segmented-control/SegmentedControl.tsx b/packages/harmony/src/components/segmented-control/SegmentedControl.tsx index 0344adfad0f..42ca1e01bf5 100644 --- a/packages/harmony/src/components/segmented-control/SegmentedControl.tsx +++ b/packages/harmony/src/components/segmented-control/SegmentedControl.tsx @@ -18,18 +18,29 @@ import { SegmentedControlProps } from './types' export const SegmentedControl = ( props: SegmentedControlProps ) => { - const optionRefs = useRef( - props.options.map((_) => createRef()) - ) - const [selected, setSelected] = useState(props.options[0].key) + const { + options, + selected, + onSelectOption, + className, + fullWidth, + isMobile, + disabled, + label, + 'aria-labelledby': ariaLabelledBy, + equalWidth, + forceRefreshAfterMs + } = props + const optionRefs = useRef(options.map((_) => createRef())) + const [localSelected, setLocalSelected] = useState(options[0].key) const [maxOptionWidth, setMaxOptionWidth] = useState(0) - const selectedOption = props.selected || selected + const selectedOption = selected || localSelected const onSetSelected = (option: T) => { // Call props function if controlled - if (props.onSelectOption) props.onSelectOption(option) - setSelected(option) + if (onSelectOption) onSelectOption(option) + setLocalSelected(option) } const [tabProps, tabApi] = useSpring(() => ({ @@ -55,12 +66,12 @@ export const SegmentedControl = ( useEffect(() => { setTimeout(() => { setForceRefresh(!forceRefresh) - }, props.forceRefreshAfterMs) + }, forceRefreshAfterMs) // eslint-disable-next-line react-hooks/exhaustive-deps }, []) useEffect(() => { - let selectedRefIdx = props.options.findIndex( + let selectedRefIdx = options.findIndex( (option) => option.key === selectedOption ) if (selectedRefIdx === -1) selectedRefIdx = 0 @@ -73,12 +84,12 @@ export const SegmentedControl = ( to: { left: `${left}px`, width: `${width}px` } }) }, [ - props.options, - props.equalWidth, + options, + equalWidth, selectedOption, - props.selected, - tabApi, selected, + tabApi, + localSelected, optionRefs, bounds, forceRefresh @@ -86,19 +97,20 @@ export const SegmentedControl = ( return (
- {props.options.map((option, idx) => { - const isOptionDisabled = props.disabled || option.disabled + {options.map((option, idx) => { + const isOptionDisabled = disabled || option.disabled const isSelected = option.key === selectedOption + console.log('isSelectedd', isSelected, option.key, selectedOption) return ( @@ -109,12 +121,12 @@ export const SegmentedControl = ( : optionRefs.current[idx] } className={cn(styles.tab, { - [styles.tabFullWidth]: !!props.fullWidth, - [styles.disabled]: !props.disabled && option.disabled, - [styles.isMobile]: props.isMobile + [styles.tabFullWidth]: !!fullWidth, + [styles.disabled]: !disabled && option.disabled, + [styles.isMobile]: isMobile })} style={ - props.equalWidth && maxOptionWidth + equalWidth && maxOptionWidth ? { width: `${maxOptionWidth}px` } : undefined } @@ -137,16 +149,16 @@ export const SegmentedControl = ( {option.text} - {idx !== props.options.length - 1 ? ( + {idx !== options.length - 1 ? (
) : null} diff --git a/packages/harmony/src/foundations/color/primitive-v2.css b/packages/harmony/src/foundations/color/primitive-v2.css index 2a86802c8cb..a1d52a0fde8 100644 --- a/packages/harmony/src/foundations/color/primitive-v2.css +++ b/packages/harmony/src/foundations/color/primitive-v2.css @@ -28,7 +28,7 @@ /* Neutral Colors */ --harmony-neutral: #6c6780ff; - --harmony-n-25: #fefefeff; + --harmony-n-25: #fafafaff; --harmony-n-50: #f7f7f8ff; --harmony-n-100: #efeff1ff; --harmony-n-150: #e7e7eaff; @@ -79,7 +79,7 @@ html[data-theme='day-v2'] { /* Neutral Colors */ --harmony-neutral: #6c6780ff; - --harmony-n-25: #fefefeff; + --harmony-n-25: #fafafaff; --harmony-n-50: #f7f7f8ff; --harmony-n-100: #efeff1ff; --harmony-n-150: #e7e7eaff; diff --git a/packages/harmony/src/foundations/color/primitiveV2.ts b/packages/harmony/src/foundations/color/primitiveV2.ts index b4d02460fae..d8c3410ac49 100644 --- a/packages/harmony/src/foundations/color/primitiveV2.ts +++ b/packages/harmony/src/foundations/color/primitiveV2.ts @@ -26,7 +26,7 @@ export const primitiveThemeV2 = { secondary: '#7E1BCCFF' }, neutral: { - n25: '#FEFEFEFF', + n25: '#FAFAFAFF', n50: '#F7F7F8FF', n100: '#EFEFF1FF', n150: '#E7E7EAFF', diff --git a/packages/harmony/src/foundations/color/semanticV2.ts b/packages/harmony/src/foundations/color/semanticV2.ts index 87a3a940c19..ff254a3a75b 100644 --- a/packages/harmony/src/foundations/color/semanticV2.ts +++ b/packages/harmony/src/foundations/color/semanticV2.ts @@ -1,14 +1,20 @@ +import { Theme } from '../theme/types' + import type { PrimitiveColorsV2 } from './primitiveV2' import { primitiveThemeV2 } from './primitiveV2' -const createSemanticThemeV2 = (primitives: PrimitiveColorsV2) => ({ +const createSemanticThemeV2 = ( + theme: Theme, + primitives: PrimitiveColorsV2 +) => ({ text: { default: primitives.neutral.n800, subdued: primitives.neutral.n400, disabled: primitives.neutral.n150, link: primitives.primary.p500, accent: primitives.secondary.s300, - inverse: primitives.special.white, + inverse: + theme === 'day' ? primitives.neutral.n950 : primitives.special.white, // Legacy compatibility heading: primitives.special.gradient, @@ -26,7 +32,8 @@ const createSemanticThemeV2 = (primitives: PrimitiveColorsV2) => ({ disabled: primitives.neutral.n150, link: primitives.primary.p500, accent: primitives.secondary.s300, - inverse: primitives.special.white, + inverse: + theme === 'day' ? primitives.neutral.n950 : primitives.special.white, // Legacy compatibility heading: primitives.special.gradient, @@ -47,7 +54,7 @@ const createSemanticThemeV2 = (primitives: PrimitiveColorsV2) => ({ background: { default: primitives.special.background, surface1: primitives.neutral.n25, - surface2: primitives.neutral.n100, + surface2: primitives.neutral.n50, white: primitives.special.white, // Legacy compatibility @@ -71,9 +78,9 @@ const createSemanticThemeV2 = (primitives: PrimitiveColorsV2) => ({ }) export const semanticThemeV2 = { - day: createSemanticThemeV2(primitiveThemeV2.day), - dark: createSemanticThemeV2(primitiveThemeV2.dark), - matrix: createSemanticThemeV2(primitiveThemeV2.matrix) + day: createSemanticThemeV2('day', primitiveThemeV2.day), + dark: createSemanticThemeV2('dark', primitiveThemeV2.dark), + matrix: createSemanticThemeV2('matrix', primitiveThemeV2.matrix) } export type SemanticColorsV2 = typeof semanticThemeV2.day diff --git a/packages/web/src/pages/upload-page/components/ShareBanner.tsx b/packages/web/src/pages/upload-page/components/ShareBanner.tsx index ca77e5858f8..1bb9368be70 100644 --- a/packages/web/src/pages/upload-page/components/ShareBanner.tsx +++ b/packages/web/src/pages/upload-page/components/ShareBanner.tsx @@ -136,12 +136,12 @@ export const ShareBanner = (props: ShareBannerProps) => { backgroundImage: `linear-gradient(315deg, rgba(91, 35, 225, 0.8) 0%, rgba(162, 47, 237, 0.8) 100%), url(${backgroundPlaceholder})` }} > - + {messages.uploadComplete} {!isUnlistedTrack ? ( <> - + {messages.shareText(uploadType)}
diff --git a/packages/web/src/pages/upload-page/pages/SelectPage.tsx b/packages/web/src/pages/upload-page/pages/SelectPage.tsx index dbf3085ffea..db9c163d3eb 100644 --- a/packages/web/src/pages/upload-page/pages/SelectPage.tsx +++ b/packages/web/src/pages/upload-page/pages/SelectPage.tsx @@ -29,7 +29,7 @@ export const SelectPage = (props: SelectPageProps) => { const [tracks, setTracks] = useState(formState.tracks ?? []) const [uploadType, setUploadType] = useState( - formState.uploadType ?? UploadType.INDIVIDUAL_TRACK + formState.uploadType ?? UploadType.INDIVIDUAL_TRACKS ) const [uploadTrackError, setUploadTrackError] = useState>(null)