diff --git a/Gemfile.lock b/Gemfile.lock
index 5843b65419f..8df753e9074 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -18,20 +18,20 @@ GEM
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
- aws-partitions (1.1027.0)
- aws-sdk-core (3.214.0)
+ aws-partitions (1.1040.0)
+ aws-sdk-core (3.216.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
jmespath (~> 1, >= 1.6.1)
- aws-sdk-kms (1.96.0)
- aws-sdk-core (~> 3, >= 3.210.0)
+ aws-sdk-kms (1.97.0)
+ aws-sdk-core (~> 3, >= 3.216.0)
aws-sigv4 (~> 1.5)
- aws-sdk-s3 (1.176.1)
- aws-sdk-core (~> 3, >= 3.210.0)
+ aws-sdk-s3 (1.178.0)
+ aws-sdk-core (~> 3, >= 3.216.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
- aws-sigv4 (1.10.1)
+ aws-sigv4 (1.11.0)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
@@ -128,7 +128,7 @@ GEM
faraday-retry (1.0.3)
faraday_middleware (1.2.1)
faraday (~> 1.0)
- fastimage (2.3.1)
+ fastimage (2.4.0)
fastlane (2.225.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
@@ -252,7 +252,7 @@ GEM
nkf (0.2.0)
optparse (0.6.0)
os (1.1.4)
- plist (3.7.1)
+ plist (3.7.2)
public_suffix (4.0.7)
rake (13.2.1)
representable (3.2.0)
@@ -264,7 +264,7 @@ GEM
rouge (2.0.7)
ruby-macho (2.5.1)
ruby2_keywords (0.0.5)
- rubyzip (2.3.2)
+ rubyzip (2.4.1)
security (0.1.5)
signet (0.19.0)
addressable (~> 2.8)
diff --git a/package.json b/package.json
index 2f47f283777..a6e830ba34a 100644
--- a/package.json
+++ b/package.json
@@ -109,7 +109,7 @@
},
"dependencies": {
"@artsy/cohesion": "4.227.0",
- "@artsy/palette-mobile": "14.0.16",
+ "@artsy/palette-mobile": "14.0.17--canary.299.3060.0",
"@artsy/to-title-case": "1.1.0",
"@braze/react-native-sdk": "13.1.1",
"@expo/react-native-action-sheet": "4.0.1",
@@ -223,6 +223,7 @@
"@react-native/eslint-config": "0.76.5",
"@react-native/metro-config": "0.76.5",
"@react-native/typescript-config": "0.76.5",
+ "@sentry/cli": "2.41.1",
"@testing-library/react-hooks": "8.0.1",
"@testing-library/react-native": "12.9.0",
"@types/argparse": "2.0.10",
diff --git a/src/app/Components/AnimatableHeader/AnimatableHeader.tsx b/src/app/Components/AnimatableHeader/AnimatableHeader.tsx
index 2998881d4ed..531815355fa 100644
--- a/src/app/Components/AnimatableHeader/AnimatableHeader.tsx
+++ b/src/app/Components/AnimatableHeader/AnimatableHeader.tsx
@@ -14,7 +14,7 @@ export interface AnimatableHeaderProps {
export const AnimatableHeader = (props: AnimatableHeaderProps) => {
const { title, rightButtonDisabled, rightButtonText, onRightButtonPress } = props
- const { space } = useTheme()
+ const { space, color } = useTheme()
const { headerHeight, setTitle, titleShown } = useAnimatableHeaderContext()
useEffect(() => {
@@ -28,7 +28,7 @@ export const AnimatableHeader = (props: AnimatableHeaderProps) => {
paddingHorizontal: space(2),
alignItems: "center",
height: headerHeight,
- backgroundColor: "white",
+ backgroundColor: color("white100"),
}}
>
= ({
searchCriteria,
...props
}) => {
+ const color = useColor()
+
const [isCreateAlertModalVisible, setIsCreateAlertModalVisible] = useState(false)
const [isLoading, setIsLoading] = useState(false)
const { showFilterArtworksModal, closeFilterArtworksModal } = useShowArtworksFilterModal({
@@ -258,7 +261,7 @@ const ArtworksGrid: React.FC = ({
}
return (
- <>
+
= ({
onComplete={handleCompleteSavedSearch}
visible={isCreateAlertModalVisible}
/>
- >
+
)
}
diff --git a/src/app/Components/Artist/ArtistArtworks/ArtistArtworksFilterHeader.tsx b/src/app/Components/Artist/ArtistArtworks/ArtistArtworksFilterHeader.tsx
index e5894d512f3..83fa2755ad2 100644
--- a/src/app/Components/Artist/ArtistArtworks/ArtistArtworksFilterHeader.tsx
+++ b/src/app/Components/Artist/ArtistArtworks/ArtistArtworksFilterHeader.tsx
@@ -1,4 +1,4 @@
-import { Box } from "@artsy/palette-mobile"
+import { Flex } from "@artsy/palette-mobile"
import { ArtistArtworksFilterHeader_artist$key } from "__generated__/ArtistArtworksFilterHeader_artist.graphql"
import { SavedSearchButtonV2 } from "app/Components/Artist/ArtistArtworks/SavedSearchButtonV2"
import { useShowArtworksFilterModal } from "app/Components/Artist/ArtistArtworks/hooks/useShowArtworksFilterModal"
@@ -29,7 +29,7 @@ export const ArtistArtworksFilterHeader: React.FC = (
const { openFilterArtworksModal } = useShowArtworksFilterModal({ artist: data })
return (
-
+
{
openFilterArtworksModal("sortAndFilter")
@@ -45,6 +45,6 @@ export const ArtistArtworksFilterHeader: React.FC = (
}}
/>
-
+
)
}
diff --git a/src/app/Components/Artist/ArtistArtworks/SavedSearchButtonV2.tsx b/src/app/Components/Artist/ArtistArtworks/SavedSearchButtonV2.tsx
index b07af1da8e1..599dfa72944 100644
--- a/src/app/Components/Artist/ArtistArtworks/SavedSearchButtonV2.tsx
+++ b/src/app/Components/Artist/ArtistArtworks/SavedSearchButtonV2.tsx
@@ -26,7 +26,7 @@ export const SavedSearchButtonV2: React.FC = (props) =
onPress={handlePress}
render={({ color }) => (
-
+
diff --git a/src/app/Components/ArtsyWebView.tsx b/src/app/Components/ArtsyWebView.tsx
index 7a914646c9c..fb873229a69 100644
--- a/src/app/Components/ArtsyWebView.tsx
+++ b/src/app/Components/ArtsyWebView.tsx
@@ -2,6 +2,7 @@ import { OwnerType } from "@artsy/cohesion"
import { Flex, Screen, Text } from "@artsy/palette-mobile"
import * as Sentry from "@sentry/react-native"
import { addBreadcrumb } from "@sentry/react-native"
+import { NavigationHeader } from "app/Components/NavigationHeader"
import { BottomTabRoutes } from "app/Scenes/BottomTabs/bottomTabsConfig"
import { GlobalStore, getCurrentEmissionState } from "app/store/GlobalStore"
import { GoBackProps, dismissModal, goBack, navigate } from "app/system/navigation/navigate"
@@ -20,7 +21,6 @@ import { Edge } from "react-native-safe-area-context"
import Share from "react-native-share"
import WebView, { WebViewNavigation, WebViewProps } from "react-native-webview"
import { useTracking } from "react-tracking"
-import { NavigationHeader } from "app/Components/NavigationHeader"
export interface ArtsyWebViewConfig {
title?: string
@@ -130,7 +130,7 @@ export const ArtsyWebViewPage = ({
return (
-
+
()
export const ArtworkFilterNavigator: React.FC = (props) => {
+ const theme = useNavigationTheme()
+ const color = useColor()
+
const tracking = useTracking()
const { id, mode, slug, name, query, shouldShowCreateAlertButton, closeModal, exitModal } = props
const [isCreateAlertModalVisible, setIsCreateAlertModalVisible] = useState(false)
@@ -312,16 +317,16 @@ export const ArtworkFilterNavigator: React.FC = (props) => {
}, [])
return (
-
+
-
+
{
const selectedTree = renderWithWrappersLEGACY(
{
const unselectedTree = renderWithWrappersLEGACY(
=
shadowOpacity: 0.1,
shadowRadius: 12,
elevation: 12,
- backgroundColor: "white",
+ backgroundColor: color("white100"),
// the bottom padding that is created by safeareaview in almost all > X apple devices
// is somewhere around 35px. This is a hack to make sure that the button is
// displayed 40px above the bottom of the screen.
paddingBottom: -15,
}}
>
-
+
= ({
case curatorsPick && !hideCuratorsPick:
return (
-
+
{" "}
Curators’ Pick
@@ -33,7 +33,7 @@ export const ArtworkSocialSignal: React.FC = ({
case increasedInterest && !hideIncreasedInterest:
return (
-
+
{" "}
Increased Interest
diff --git a/src/app/Components/ArtworkGrids/ArtworksFilterHeader.tsx b/src/app/Components/ArtworkGrids/ArtworksFilterHeader.tsx
index 64b74b4d840..9551033fb54 100644
--- a/src/app/Components/ArtworkGrids/ArtworksFilterHeader.tsx
+++ b/src/app/Components/ArtworkGrids/ArtworksFilterHeader.tsx
@@ -28,7 +28,7 @@ export const ArtworksFilterHeader: React.FC = ({
showSeparator = true,
}) => {
return (
-
+
= ({
style={{ opacity: localIsLoading && hasMore() ? 1 : 0 }}
>
{!!autoFetch && (
-
+
)}
)}
diff --git a/src/app/Components/AuctionResultsList.tsx b/src/app/Components/AuctionResultsList.tsx
index 8239df73688..cecedd63bc6 100644
--- a/src/app/Components/AuctionResultsList.tsx
+++ b/src/app/Components/AuctionResultsList.tsx
@@ -73,7 +73,7 @@ export const AuctionResultsList: React.FC = ({
ListHeaderComponent={ListHeaderComponent}
ItemSeparatorComponent={() => }
renderSectionHeader={({ section: { sectionTitle } }) => (
-
+
{sectionTitle}
diff --git a/src/app/Components/BottomSheet/AutomountedBottomSheetModal.tsx b/src/app/Components/BottomSheet/AutomountedBottomSheetModal.tsx
index 029ecfc36d6..a36a778e0a3 100644
--- a/src/app/Components/BottomSheet/AutomountedBottomSheetModal.tsx
+++ b/src/app/Components/BottomSheet/AutomountedBottomSheetModal.tsx
@@ -1,4 +1,4 @@
-import { useScreenDimensions } from "@artsy/palette-mobile"
+import { useColor, useScreenDimensions } from "@artsy/palette-mobile"
import {
BottomSheetBackdropProps,
BottomSheetModal,
@@ -18,6 +18,7 @@ export const AutomountedBottomSheetModal: FC =
closeOnBackdropClick = true,
...rest
}) => {
+ const color = useColor()
const ref = useRef(null)
const [modalIsPresented, setModalIsPresented] = useState(false)
const { height: screenHeight, safeAreaInsets } = useScreenDimensions()
@@ -78,6 +79,16 @@ export const AutomountedBottomSheetModal: FC =
backdropComponent={renderBackdrop}
enableDynamicSizing
maxDynamicContentSize={screenHeight - safeAreaInsets.top}
+ backgroundStyle={{
+ ...(rest?.backgroundStyle as any),
+ backgroundColor: color("background"),
+ }}
+ handleIndicatorStyle={{
+ backgroundColor: color("black100"),
+ width: 40,
+ height: 4,
+ borderRadius: 2,
+ }}
{...rest}
/>
)
diff --git a/src/app/Components/BottomSheet/DefaultBottomSheetBackdrop.tsx b/src/app/Components/BottomSheet/DefaultBottomSheetBackdrop.tsx
index 67ae46cae84..445880a0df0 100644
--- a/src/app/Components/BottomSheet/DefaultBottomSheetBackdrop.tsx
+++ b/src/app/Components/BottomSheet/DefaultBottomSheetBackdrop.tsx
@@ -19,7 +19,6 @@ export const DefaultBottomSheetBackdrop: React.FC =
style,
}) => {
const color = useColor()
-
// animated variables
const containerAnimatedStyle = useAnimatedStyle(() => {
"worklet"
@@ -33,6 +32,7 @@ export const DefaultBottomSheetBackdrop: React.FC =
() => [
style,
{
+ // We intentionally want the background color to be black regardless of the theme
backgroundColor: color("black100"),
},
containerAnimatedStyle,
diff --git a/src/app/Components/Buttons/DarkNavigationButton.tsx b/src/app/Components/Buttons/DarkNavigationButton.tsx
index 4de2ae737f2..86a3250aca5 100644
--- a/src/app/Components/Buttons/DarkNavigationButton.tsx
+++ b/src/app/Components/Buttons/DarkNavigationButton.tsx
@@ -1,4 +1,5 @@
-import { Flex, Box, ClassTheme, Text } from "@artsy/palette-mobile"
+import { Flex, Box, Text } from "@artsy/palette-mobile"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { navigate } from "app/system/navigation/navigate"
import React from "react"
import { Image, TouchableWithoutFeedback } from "react-native"
@@ -13,7 +14,7 @@ export default class DarkNavigationButton extends React.Component {
render() {
const showNavArrow = this.props.href || this.props.onPress
return (
-
+
{({ color }) => (
@@ -28,7 +29,7 @@ export default class DarkNavigationButton extends React.Component {
)}
-
+
)
}
diff --git a/src/app/Components/Countdown/CountdownTimer.tests.tsx b/src/app/Components/Countdown/CountdownTimer.tests.tsx
index fa2e95c9995..df0a010a277 100644
--- a/src/app/Components/Countdown/CountdownTimer.tests.tsx
+++ b/src/app/Components/Countdown/CountdownTimer.tests.tsx
@@ -17,10 +17,10 @@ const CountdownText: React.FC = ({ duration, label }) => (
}
- textProps={{ color: "white", variant: "sm" }}
+ textProps={{ color: "white100", variant: "sm" }}
duration={duration}
/>
-
+
{label}
diff --git a/src/app/Components/CreditCardField/CreditCardField.tsx b/src/app/Components/CreditCardField/CreditCardField.tsx
index c6ff6d4ee08..a6518609bd1 100644
--- a/src/app/Components/CreditCardField/CreditCardField.tsx
+++ b/src/app/Components/CreditCardField/CreditCardField.tsx
@@ -60,7 +60,6 @@ export const CreditCardField: React.FC = ({ onCardChange }
return {
zIndex: 100,
position: "absolute",
- backgroundColor: "white",
left: withTiming(
hasSelectedValue || isFocused ? 15 : STRIPE_CREDIT_CARD_ICON_CONTAINER_WIDTH
),
@@ -93,7 +92,7 @@ export const CreditCardField: React.FC = ({ onCardChange }
testID="credit-card-field"
cardStyle={{
borderWidth: 0, // avoid repeat border
- backgroundColor: color("white100"),
+ backgroundColor: color("background"),
fontSize: textStyle.fontSize,
fontFamily: textStyle.fontFamily,
textColor: color("black100"),
@@ -113,7 +112,7 @@ export const CreditCardField: React.FC = ({ onCardChange }
/>
-
+
{hasSelectedValue || isFocused ? "Credit Card" : ""}
diff --git a/src/app/Components/DarkModeClassTheme.tsx b/src/app/Components/DarkModeClassTheme.tsx
new file mode 100644
index 00000000000..3311bdcb8eb
--- /dev/null
+++ b/src/app/Components/DarkModeClassTheme.tsx
@@ -0,0 +1,19 @@
+import { ClassTheme, useTheme } from "@artsy/palette-mobile"
+import { GlobalStore } from "app/store/GlobalStore"
+import { useFeatureFlag } from "app/utils/hooks/useFeatureFlag"
+
+export const ThemeAwareClassTheme = ({
+ children,
+}: {
+ children: React.ReactNode | ((helpers: ReturnType) => React.ReactNode)
+}) => {
+ const supportDarkMode = useFeatureFlag("ARDarkModeSupport")
+ const darkMode = GlobalStore.useAppState((state) => state.devicePrefs.colorScheme)
+
+ return (
+ // @ts-expect-error
+
+ {typeof children === "function" ? children : children}
+
+ )
+}
diff --git a/src/app/Components/Expandable.tsx b/src/app/Components/Expandable.tsx
index fadc414ee49..e7f469c10e2 100644
--- a/src/app/Components/Expandable.tsx
+++ b/src/app/Components/Expandable.tsx
@@ -1,4 +1,4 @@
-import { ChevronIcon, Collapse, Flex, Text, Touchable } from "@artsy/palette-mobile"
+import { ChevronIcon, Collapse, Flex, Text, Touchable, useColor } from "@artsy/palette-mobile"
import { MAX_WIDTH_BIO } from "app/Components/Artist/Biography"
import { MotiView } from "moti"
import { useState } from "react"
@@ -21,6 +21,7 @@ export const Expandable: React.FC = ({
onTrack,
}) => {
const [expanded, setExpanded] = useState(propExpanded)
+ const color = useColor()
const handleToggle = () => {
setExpanded((prev) => !prev)
@@ -35,6 +36,7 @@ export const Expandable: React.FC = ({
py={1}
accessibilityHint="Toggles the accordion"
maxWidth={MAX_WIDTH_BIO}
+ borderColor={color("black100")}
>
handleToggle()}
@@ -52,7 +54,7 @@ export const Expandable: React.FC = ({
style={{ transform: [{ rotate: !!expanded ? "-90deg" : "90deg" }] }}
transition={{ type: "timing" }}
>
-
+
diff --git a/src/app/Components/FPSCounter.tsx b/src/app/Components/FPSCounter.tsx
index add9766673a..b035621d58c 100644
--- a/src/app/Components/FPSCounter.tsx
+++ b/src/app/Components/FPSCounter.tsx
@@ -1,3 +1,4 @@
+import { useColor } from "@artsy/palette-mobile"
import { useState } from "react"
import { useFps } from "react-fps"
import { Text, TouchableOpacity, View, ViewStyle } from "react-native"
@@ -5,6 +6,8 @@ import { Text, TouchableOpacity, View, ViewStyle } from "react-native"
export function FPSCounter({ style }: { style?: ViewStyle }) {
const { currentFps, avgFps, fps, maxFps } = useFps(20)
const [opacity, setOpacity] = useState(1)
+ const color = useColor()
+
const textHeight = 20
const graphHeight = 40
const borderWidth = 1
@@ -18,8 +21,8 @@ export function FPSCounter({ style }: { style?: ViewStyle }) {
width: 86,
left: 4,
bottom: 4,
- backgroundColor: "white",
- borderColor: "black",
+ backgroundColor: color("white100"),
+ borderColor: color("black100"),
borderWidth,
paddingHorizontal: 2,
opacity,
diff --git a/src/app/Components/FancyModal/FancyModalCard.tsx b/src/app/Components/FancyModal/FancyModalCard.tsx
index af7d7403d98..a83323a5ccd 100644
--- a/src/app/Components/FancyModal/FancyModalCard.tsx
+++ b/src/app/Components/FancyModal/FancyModalCard.tsx
@@ -1,3 +1,4 @@
+import { useColor } from "@artsy/palette-mobile"
import { useScreenDimensions } from "app/utils/hooks"
import { compact } from "lodash"
import React, { RefObject, useImperativeHandle, useRef } from "react"
@@ -43,6 +44,8 @@ export const FancyModalCard = React.forwardRef<
onBackgroundPressed(): void
}>
>((props, ref) => {
+ const color = useColor()
+
const animationPosition = props.animationPosition ?? "bottom"
const screen = useScreenDimensions()
const isRootCard = props.level === 0
@@ -174,7 +177,7 @@ export const FancyModalCard = React.forwardRef<
@@ -208,7 +211,7 @@ export const FancyModalCard = React.forwardRef<
diff --git a/src/app/Components/FancyModal/FancyModalContext.tsx b/src/app/Components/FancyModal/FancyModalContext.tsx
index 5009be41c02..8155865967f 100644
--- a/src/app/Components/FancyModal/FancyModalContext.tsx
+++ b/src/app/Components/FancyModal/FancyModalContext.tsx
@@ -1,3 +1,4 @@
+import { Flex } from "@artsy/palette-mobile"
import { ExecutionQueue } from "app/utils/ExecutionQueue"
import { useScreenDimensions } from "app/utils/hooks"
import { compact, flatten } from "lodash"
@@ -48,7 +49,7 @@ class FancyModalCardStack {
getRootCard(height: number, content: React.ReactNode) {
return (
-
+
{content}
-
+
)
}
diff --git a/src/app/Components/Gene/Biography.tsx b/src/app/Components/Gene/Biography.tsx
index 2d89036d44b..9a7d282baf6 100644
--- a/src/app/Components/Gene/Biography.tsx
+++ b/src/app/Components/Gene/Biography.tsx
@@ -17,7 +17,7 @@ const Biography: React.FC = ({ gene }) => {
return (
-
+
{removeMarkdown(gene.description)}
diff --git a/src/app/Components/HeaderArtworksFilter/HeaderArtworksFilter.tsx b/src/app/Components/HeaderArtworksFilter/HeaderArtworksFilter.tsx
index a9d4ea87278..95bedb1ddfa 100644
--- a/src/app/Components/HeaderArtworksFilter/HeaderArtworksFilter.tsx
+++ b/src/app/Components/HeaderArtworksFilter/HeaderArtworksFilter.tsx
@@ -115,7 +115,7 @@ export const HeaderArtworksFilter: React.FC = ({
}
return (
- _onLayout(e)} testID="HeaderArtworksFilter">
+ _onLayout(e)} testID="HeaderArtworksFilter">
{!!animationValue && !disableYAxisAnimation && (
)}
@@ -136,7 +136,7 @@ export const HeaderArtworksFilter: React.FC = ({
],
}}
>
-
+
{hideArtworksCount ? (
diff --git a/src/app/Components/HeaderButton.tsx b/src/app/Components/HeaderButton.tsx
index 9b19138a665..e0766358917 100644
--- a/src/app/Components/HeaderButton.tsx
+++ b/src/app/Components/HeaderButton.tsx
@@ -1,4 +1,4 @@
-import { Touchable } from "@artsy/palette-mobile"
+import { Touchable, useColor } from "@artsy/palette-mobile"
import { useScreenDimensions } from "app/utils/hooks"
import { StyleProp, ViewProps, ViewStyle } from "react-native"
import Animated, { AnimateProps, FadeIn, FadeOut } from "react-native-reanimated"
@@ -26,6 +26,7 @@ export const HeaderButton: React.FC = (props) => {
onPress,
...rest
} = props
+ const color = useColor()
const { safeAreaInsets } = useScreenDimensions()
if (shouldHide) {
@@ -42,7 +43,7 @@ export const HeaderButton: React.FC = (props) => {
width: BUTTON_SIZE,
height: BUTTON_SIZE,
borderRadius: BUTTON_SIZE / 2,
- backgroundColor: "white",
+ backgroundColor: color("white100"),
position: "absolute",
left: position === "left" ? BUTTON_HORIZONTAL_OFFSET : undefined,
right: position === "right" ? BUTTON_HORIZONTAL_OFFSET : undefined,
diff --git a/src/app/Components/LineGraph/LineGraphChart.tsx b/src/app/Components/LineGraph/LineGraphChart.tsx
index f114790c7c4..19303eb45fe 100644
--- a/src/app/Components/LineGraph/LineGraphChart.tsx
+++ b/src/app/Components/LineGraph/LineGraphChart.tsx
@@ -72,7 +72,7 @@ export const LineGraphChart: React.FC = ({
// MARK:- STATES
const [lastPressedDatum, setLastPressedDatum] = useState<
- (typeof data[0] & { left?: number; dataTag?: string }) | null
+ ((typeof data)[0] & { left?: number; dataTag?: string }) | null
>(null)
const shadedTintColor = shadeColor(tintColor, tintColorShadeFactor)
@@ -208,7 +208,7 @@ export const LineGraphChart: React.FC = ({
-
+
),
@@ -239,7 +239,7 @@ export const LineGraphChart: React.FC = ({
/>
}
style={{
- background: { fill: "white" },
+ background: { fill: color("white100") },
}}
padding={{ left: 40, right: 40, bottom: 20, top: 40 }}
width={chartWidth}
diff --git a/src/app/Components/Lists/ShowItemRow.tsx b/src/app/Components/Lists/ShowItemRow.tsx
index 60ebb6d489f..adebc446f07 100644
--- a/src/app/Components/Lists/ShowItemRow.tsx
+++ b/src/app/Components/Lists/ShowItemRow.tsx
@@ -1,12 +1,13 @@
-import { Flex, Box, ClassTheme, Text, Button, Touchable, Image } from "@artsy/palette-mobile"
+import { Box, Button, Flex, Image, Text, Touchable } from "@artsy/palette-mobile"
import { themeGet } from "@styled-system/theme-get"
import { ShowItemRowMutation } from "__generated__/ShowItemRowMutation.graphql"
import { ShowItemRow_show$data } from "__generated__/ShowItemRow_show.graphql"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { Pin } from "app/Components/Icons/Pin"
import { exhibitionDates } from "app/Scenes/Map/exhibitionPeriodParser"
import { navigate } from "app/system/navigation/navigate"
import { hrefForPartialShow } from "app/utils/router"
-import { Schema, Track, track as _track } from "app/utils/track"
+import { track as _track, Schema, Track } from "app/utils/track"
import { debounce } from "lodash"
import React from "react"
import { TouchableWithoutFeedback } from "react-native"
@@ -121,7 +122,7 @@ export class ShowItemRow extends React.Component {
const imageURL = mainCoverImageURL || galleryProfileIcon
return (
-
+
{({ color }) => (
{!imageURL ? (
@@ -184,7 +185,7 @@ export class ShowItemRow extends React.Component {
)}
)}
-
+
)
}
@@ -192,7 +193,7 @@ export class ShowItemRow extends React.Component {
const { show, isListItem } = this.props
return isListItem ? (
-
+
{({ color }) => (
{
{this.renderItemDetails()}
)}
-
+
) : (
this.handleTap(show.slug, show.internalID)}>
{this.renderItemDetails()}
diff --git a/src/app/Components/MenuItem.tsx b/src/app/Components/MenuItem.tsx
index 94984e55e37..c8551e4c002 100644
--- a/src/app/Components/MenuItem.tsx
+++ b/src/app/Components/MenuItem.tsx
@@ -71,7 +71,9 @@ export const MenuItem: React.FC<{
)}
- {title}
+
+ {title}
+
{!!description && (
{description}
diff --git a/src/app/Components/PaginationDots.tsx b/src/app/Components/PaginationDots.tsx
index 64a2423f1c7..776c8f8d748 100644
--- a/src/app/Components/PaginationDots.tsx
+++ b/src/app/Components/PaginationDots.tsx
@@ -1,4 +1,4 @@
-import { Flex } from "@artsy/palette-mobile"
+import { Flex, useColor } from "@artsy/palette-mobile"
import { MotiView } from "moti"
interface PaginationDotsProps {
@@ -23,6 +23,7 @@ interface PaginationDotProps {
}
const PaginationDot: React.FC = (props) => {
+ const color = useColor()
const { active } = props
const diameter = 5
@@ -31,7 +32,7 @@ const PaginationDot: React.FC = (props) => {
accessibilityLabel="Image Pagination Indicator"
animate={{ opacity: active ? 1 : 0.1 }}
style={{
- backgroundColor: "black",
+ backgroundColor: color("black100"),
borderRadius: diameter / 2,
height: diameter,
marginHorizontal: diameter * 0.8,
diff --git a/src/app/Components/RelatedArtists/RelatedArtist.tsx b/src/app/Components/RelatedArtists/RelatedArtist.tsx
index 3f1423126a6..e14a85d08e8 100644
--- a/src/app/Components/RelatedArtists/RelatedArtist.tsx
+++ b/src/app/Components/RelatedArtists/RelatedArtist.tsx
@@ -1,5 +1,6 @@
-import { Spacer, ClassTheme, Text, Image } from "@artsy/palette-mobile"
+import { Image, Spacer, Text } from "@artsy/palette-mobile"
import { RelatedArtist_artist$data } from "__generated__/RelatedArtist_artist.graphql"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { navigate } from "app/system/navigation/navigate"
import { Component } from "react"
import { TouchableWithoutFeedback, View } from "react-native"
@@ -38,13 +39,13 @@ class RelatedArtist extends Component {
{artist.name}
-
+
{({ color }) => (
{this.artworksString(artist.counts)}
)}
-
+
)
diff --git a/src/app/Components/SectionTitle.tsx b/src/app/Components/SectionTitle.tsx
index 8e91dffb335..dd98fba9be5 100644
--- a/src/app/Components/SectionTitle.tsx
+++ b/src/app/Components/SectionTitle.tsx
@@ -5,7 +5,6 @@ import {
SpacingUnit,
Text,
TextProps,
- useTheme,
} from "@artsy/palette-mobile"
import { toTitleCase } from "@artsy/to-title-case"
import { RouterLink } from "app/system/navigation/RouterLink"
@@ -33,7 +32,6 @@ export const SectionTitle: React.FC<
capitalized = true,
...flexProps
}) => {
- const { color } = useTheme()
let titleText
if (typeof title === "string") {
@@ -49,7 +47,7 @@ export const SectionTitle: React.FC<
{!!subtitle && (
-
+
{subtitle}
)}
diff --git a/src/app/Components/Select/Components/SelectButton.tsx b/src/app/Components/Select/Components/SelectButton.tsx
index 9062926b389..91c370f844e 100644
--- a/src/app/Components/Select/Components/SelectButton.tsx
+++ b/src/app/Components/Select/Components/SelectButton.tsx
@@ -11,6 +11,7 @@ import {
TriangleDown,
getInputState,
getInputVariant,
+ useColor,
useSpace,
} from "@artsy/palette-mobile"
import { THEME } from "@artsy/palette-tokens"
@@ -47,6 +48,7 @@ export const SelectButton: React.FC<{
error,
}) => {
const space = useSpace()
+ const color = useColor()
const variant: InputVariant = getInputVariant({
hasError: !!hasError || !!error,
@@ -69,7 +71,6 @@ export const SelectButton: React.FC<{
const labelStyles = useAnimatedStyle(() => {
return {
- backgroundColor: "white",
paddingHorizontal: withTiming(hasSelectedValue ? 5 : 0),
color: withTiming(INPUT_VARIANTS[variant][animatedState.value].labelColor),
top: withTiming(hasSelectedValue ? -INPUT_MIN_HEIGHT / 2 : 0),
@@ -115,7 +116,11 @@ export const SelectButton: React.FC<{
]}
flexDirection="row"
>
- {!!title && {title}}
+ {!!title && (
+
+ {title}
+
+ )}
{!!value && (
{props.renderItemLabel?.(item) ?? (
diff --git a/src/app/Components/SortByModal/SortByModal.tsx b/src/app/Components/SortByModal/SortByModal.tsx
index 974d2d85f0b..5930a985479 100644
--- a/src/app/Components/SortByModal/SortByModal.tsx
+++ b/src/app/Components/SortByModal/SortByModal.tsx
@@ -29,7 +29,7 @@ export const SortByModal: React.FC = (props) => {
presentationStyle="pageSheet"
animationType="slide"
>
-
+
Sort By
diff --git a/src/app/Components/SwitchMenu.tsx b/src/app/Components/SwitchMenu.tsx
index 8609b0202c2..889c7d68828 100644
--- a/src/app/Components/SwitchMenu.tsx
+++ b/src/app/Components/SwitchMenu.tsx
@@ -1,4 +1,4 @@
-import { Flex, Text, Switch } from "@artsy/palette-mobile"
+import { Flex, Switch, Text } from "@artsy/palette-mobile"
interface SwitchMenuProps {
onChange: (value: boolean) => void
diff --git a/src/app/Components/WorksForYou/Notification.tsx b/src/app/Components/WorksForYou/Notification.tsx
index 6c503001ff2..d83972f8024 100644
--- a/src/app/Components/WorksForYou/Notification.tsx
+++ b/src/app/Components/WorksForYou/Notification.tsx
@@ -1,6 +1,7 @@
-import { ClassTheme, Text } from "@artsy/palette-mobile"
+import { Text } from "@artsy/palette-mobile"
import { Notification_notification$data } from "__generated__/Notification_notification.graphql"
import GenericGrid from "app/Components/ArtworkGrids/GenericGrid"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { navigate } from "app/system/navigation/navigate"
import { extractNodes } from "app/utils/extractNodes"
import React from "react"
@@ -42,7 +43,7 @@ export class Notification extends React.Component {
}
return (
-
+
{({ color }) => (
@@ -66,7 +67,7 @@ export class Notification extends React.Component {
)}
-
+
)
}
}
diff --git a/src/app/Navigation/AuthenticatedRoutes/StackNavigator.tsx b/src/app/Navigation/AuthenticatedRoutes/StackNavigator.tsx
index 3668fdaf928..2bb57d6e3d3 100644
--- a/src/app/Navigation/AuthenticatedRoutes/StackNavigator.tsx
+++ b/src/app/Navigation/AuthenticatedRoutes/StackNavigator.tsx
@@ -50,7 +50,7 @@ export const registerScreen: React.FC = ({ name, modu
{isModalScreen(module) ? (
) : (
-
+
)}
)
diff --git a/src/app/Navigation/AuthenticatedRoutes/Tabs.tsx b/src/app/Navigation/AuthenticatedRoutes/Tabs.tsx
index 6cfed8c8187..f2d1d308fcd 100644
--- a/src/app/Navigation/AuthenticatedRoutes/Tabs.tsx
+++ b/src/app/Navigation/AuthenticatedRoutes/Tabs.tsx
@@ -1,6 +1,5 @@
import { ActionType, OwnerType, Screen, tappedTabBar } from "@artsy/cohesion"
import { Flex, Text, useColor } from "@artsy/palette-mobile"
-import { THEME } from "@artsy/palette-tokens"
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs"
import { createNativeStackNavigator } from "@react-navigation/native-stack"
import { HomeTab } from "app/Navigation/AuthenticatedRoutes/HomeTab"
@@ -121,14 +120,15 @@ const AppTabs: React.FC = () => {
style={{ top: Platform.OS === "ios" ? -4 : 0 }}
selectable={false}
textAlign="center"
+ color="black100"
>
{bottomTabsConfig[route.name].name}
)
},
- tabBarActiveTintColor: THEME.colors["black100"],
- tabBarInactiveTintColor: THEME.colors["black60"],
+ tabBarActiveTintColor: color("black100"),
+ tabBarInactiveTintColor: color("black100"),
}
}}
screenListeners={{
diff --git a/src/app/Navigation/Navigation.tsx b/src/app/Navigation/Navigation.tsx
index 2c31dfa434b..007939b8f7e 100644
--- a/src/app/Navigation/Navigation.tsx
+++ b/src/app/Navigation/Navigation.tsx
@@ -1,14 +1,14 @@
-import { Flex, Text } from "@artsy/palette-mobile"
-import { DefaultTheme, NavigationContainer, NavigationContainerRef } from "@react-navigation/native"
+import { Flex, Spacer, Spinner, Text } from "@artsy/palette-mobile"
+import { NavigationContainer, NavigationContainerRef } from "@react-navigation/native"
import { createNativeStackNavigator } from "@react-navigation/native-stack"
import { addBreadcrumb } from "@sentry/react-native"
import { FPSCounter } from "app/Components/FPSCounter"
-import { LoadingSpinner } from "app/Components/Modals/LoadingModal"
import { LegacyNativeModules } from "app/NativeModules/LegacyNativeModules"
import {
AuthenticatedRoutes,
AuthenticatedRoutesParams,
} from "app/Navigation/AuthenticatedRoutes/Tabs"
+import { useNavigationTheme } from "app/Navigation/useNavigationTheme"
import { OnboardingWelcomeScreens } from "app/Scenes/Onboarding/Onboarding"
import { GlobalStore } from "app/store/GlobalStore"
import { routingInstrumentation } from "app/system/errorReporting/setupSentry"
@@ -37,6 +37,8 @@ export const Navigation = () => {
const isLoggedIn = GlobalStore.useAppState((state) => state.auth.userID)
const fpsCounter = useDevToggle("DTFPSCounter")
+ const theme = useNavigationTheme()
+
const { setSessionState: setNavigationReady } = GlobalStore.actions
// Code for Sift tracking; needs to be manually fired on Android
@@ -107,24 +109,18 @@ export const Navigation = () => {
)
}
-const theme = {
- ...DefaultTheme,
- colors: {
- ...DefaultTheme.colors,
- background: "#FFF",
- },
-}
-
const NavigationLoadingIndicator = () => {
return (
-
+
{!!__DEV__ && (
-
-
- This spinner is only visible in DEV mode.{"\n"}
+
+
+
+
+ Reloadig previous navigation state
)}
-
+
)
}
diff --git a/src/app/Navigation/routes.tsx b/src/app/Navigation/routes.tsx
index 96655b07112..cbb05940376 100644
--- a/src/app/Navigation/routes.tsx
+++ b/src/app/Navigation/routes.tsx
@@ -1374,6 +1374,11 @@ export const artsyDotNetRoutes = defineRoutes([
path: "/settings/dark-mode",
name: "DarkModeSettings",
Component: DarkModeSettings,
+ options: {
+ screenOptions: {
+ headerTitle: "Dark Mode Settings",
+ },
+ },
},
{
path: "/show/:showID",
diff --git a/src/app/Navigation/useNavigationTheme.tsx b/src/app/Navigation/useNavigationTheme.tsx
new file mode 100644
index 00000000000..5e49b74f48e
--- /dev/null
+++ b/src/app/Navigation/useNavigationTheme.tsx
@@ -0,0 +1,25 @@
+import { THEMES } from "@artsy/palette-mobile"
+import { DarkTheme, DefaultTheme } from "@react-navigation/native"
+import { GlobalStore } from "app/store/GlobalStore"
+
+export const useNavigationTheme = () => {
+ const theme = GlobalStore.useAppState((state) => state.devicePrefs.colorScheme)
+
+ return theme === "dark" ? DefaultDarkTheme : DefaultLightTheme
+}
+
+export const DefaultLightTheme = {
+ ...DefaultTheme,
+ colors: {
+ ...DefaultTheme.colors,
+ background: "#FFF",
+ },
+}
+
+export const DefaultDarkTheme = {
+ ...DarkTheme,
+ colors: {
+ ...DarkTheme.colors,
+ background: THEMES.v3dark.colors.background,
+ },
+}
diff --git a/src/app/Scenes/ArtQuiz/ArtQuizArtworks.tsx b/src/app/Scenes/ArtQuiz/ArtQuizArtworks.tsx
index 4d105dccea4..313336da58e 100644
--- a/src/app/Scenes/ArtQuiz/ArtQuizArtworks.tsx
+++ b/src/app/Scenes/ArtQuiz/ArtQuizArtworks.tsx
@@ -158,7 +158,7 @@ const ArtQuizArtworksScreen = () => {
const artworkCards: Card[] = artworks.slice(activeCardIndex).map((artwork) => {
return {
jsx: (
-
+
= ({ onPress, dark, testID, children }) => {
+ const color = useColor()
+
return (
= (
return (
-
+
{canBeExtended
? "Closing times may be extended due to last-minute competitive bidding. "
: `Lots will close at ${cascadingEndTimeInterval}-minute intervals. `}
navigate(CASCADING_AUCTION_HELP_ARTICLE_LINK)}
style={{ textDecorationLine: "underline" }}
>
diff --git a/src/app/Scenes/Artwork/Components/CommercialButtons/BidButton.tsx b/src/app/Scenes/Artwork/Components/CommercialButtons/BidButton.tsx
index 2a264362419..e2fdeeb41ec 100644
--- a/src/app/Scenes/Artwork/Components/CommercialButtons/BidButton.tsx
+++ b/src/app/Scenes/Artwork/Components/CommercialButtons/BidButton.tsx
@@ -1,8 +1,9 @@
import { ActionType } from "@artsy/cohesion"
-import { ButtonProps, ClassTheme, Text, TextProps, Button } from "@artsy/palette-mobile"
+import { ButtonProps, Text, TextProps, Button } from "@artsy/palette-mobile"
import { BidButton_artwork$data } from "__generated__/BidButton_artwork.graphql"
import { BidButton_me$data } from "__generated__/BidButton_me.graphql"
import { AuctionTimerState } from "app/Components/Bidding/Components/Timer"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { navigate } from "app/system/navigation/navigate"
import { bidderNeedsIdentityVerification } from "app/utils/auction/bidderNeedsIdentityVerification"
import { Schema } from "app/utils/track"
@@ -156,13 +157,13 @@ export class BidButton extends React.Component {
return (
<>
{!!isWatchOnly && (
-
+
{({ color }) => (
Registration closed
)}
-
+
)}
diff --git a/src/app/Scenes/Artwork/Components/CommercialButtons/InquirySuccessNotification.tsx b/src/app/Scenes/Artwork/Components/CommercialButtons/InquirySuccessNotification.tsx
index bf4b82cf176..9247abe7730 100644
--- a/src/app/Scenes/Artwork/Components/CommercialButtons/InquirySuccessNotification.tsx
+++ b/src/app/Scenes/Artwork/Components/CommercialButtons/InquirySuccessNotification.tsx
@@ -63,7 +63,7 @@ export const InquirySuccessNotification: React.FC = () => {
}}
>
-
+
Message Sent
diff --git a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/DeepZoomTile.tsx b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/DeepZoomTile.tsx
index dd2ee593de6..5e7a7fe5433 100644
--- a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/DeepZoomTile.tsx
+++ b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/DeepZoom/DeepZoomTile.tsx
@@ -1,3 +1,4 @@
+import { useColor } from "@artsy/palette-mobile"
import { useSpringValue } from "app/Scenes/Artwork/Components/ImageCarousel/useSpringValue"
import { useCallback, useEffect, useMemo, useState } from "react"
import { Animated, Image, View } from "react-native"
@@ -57,6 +58,7 @@ export const DeepZoomTile: React.FC = ({
id,
pyramid,
}) => {
+ const color = useColor()
const [showing, setShowing] = useState(false)
const [loaded, setLoaded] = useState(false)
const isMounted = useIsMounted()
@@ -104,7 +106,7 @@ export const DeepZoomTile: React.FC = ({
left,
width: width - 2 * borderWidth,
height: height - 2 * borderWidth,
- borderColor: "black",
+ borderColor: color("black100"),
borderWidth,
backgroundColor: !showing
? "rgba(255, 0, 0, 0.2)"
diff --git a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageCarouselCloseButton.tsx b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageCarouselCloseButton.tsx
index 5d435a27464..9c20d2f0400 100644
--- a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageCarouselCloseButton.tsx
+++ b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageCarouselCloseButton.tsx
@@ -1,4 +1,4 @@
-import { CloseIcon } from "@artsy/palette-mobile"
+import { CloseIcon, useColor } from "@artsy/palette-mobile"
import { ImageCarouselContext } from "app/Scenes/Artwork/Components/ImageCarousel/ImageCarouselContext"
import { useScreenDimensions } from "app/utils/hooks"
import { useContext } from "react"
@@ -10,6 +10,8 @@ const CLOSE_BUTTON_MARGIN = 12
export const ImageCarouselCloseButton = ({ onClose }: { onClose(): void }) => {
const { safeAreaInsets } = useScreenDimensions()
+ const color = useColor()
+
const { fullScreenState } = useContext(ImageCarouselContext)
fullScreenState.useUpdates()
@@ -43,7 +45,7 @@ export const ImageCarouselCloseButton = ({ onClose }: { onClose(): void }) => {
width: 40,
height: 40,
borderRadius: 20,
- backgroundColor: "white",
+ backgroundColor: color("white100"),
alignItems: "center",
justifyContent: "center",
},
diff --git a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageCarouselFullScreen.tsx b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageCarouselFullScreen.tsx
index 4231a47245c..9bc1c77329f 100644
--- a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageCarouselFullScreen.tsx
+++ b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/ImageCarouselFullScreen.tsx
@@ -1,3 +1,4 @@
+import { useColor } from "@artsy/palette-mobile"
import {
ImageCarouselContext,
ImageCarouselMedia,
@@ -148,11 +149,12 @@ export const ImageCarouselFullScreen = () => {
*/
const WhiteUnderlay: React.FC = () => {
const opacity = useSpringFade("in")
+ const color = useColor()
return (
{
const screenDimensions = useScreenDimensions()
+ const color = useColor()
const { media, dispatch, fullScreenState, imageIndex } = useContext(ImageCarouselContext)
fullScreenState.useUpdates()
const initialScrollIndex = useMemo(() => imageIndex.current, [])
@@ -77,7 +79,7 @@ export const ImageCarouselFullScreenAndroid = () => {
// 👇 responsible for closing the modal on android back button press
onRequestClose={onClose}
>
-
+
data={media}
pagingEnabled
diff --git a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/IndexIndicator.tsx b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/IndexIndicator.tsx
index 1da3e4b7d27..feda0dec03c 100644
--- a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/IndexIndicator.tsx
+++ b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/IndexIndicator.tsx
@@ -1,4 +1,4 @@
-import { Text } from "@artsy/palette-mobile"
+import { Text, useColor } from "@artsy/palette-mobile"
import { ImageCarouselContext } from "app/Scenes/Artwork/Components/ImageCarousel/ImageCarouselContext"
import { useSpringValue } from "app/Scenes/Artwork/Components/ImageCarousel/useSpringValue"
import { useContext, useMemo } from "react"
@@ -12,6 +12,7 @@ import { useSpringFade } from "./useSpringFade"
* is zoomed completely out!
*/
export const IndexIndicator: React.FC = () => {
+ const color = useColor()
const { images, isZoomedCompletelyOut, imageIndex } = useContext(ImageCarouselContext)
isZoomedCompletelyOut.useUpdates()
@@ -41,7 +42,7 @@ export const IndexIndicator: React.FC = () => {
{
borderRadius: 15,
height: 30,
- backgroundColor: "white",
+ backgroundColor: color("white100"),
justifyContent: "center",
paddingHorizontal: 10,
opacity,
diff --git a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/StatusBarOverlay.tsx b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/StatusBarOverlay.tsx
index 3c0e027e0c6..9eaffe1f869 100644
--- a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/StatusBarOverlay.tsx
+++ b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/StatusBarOverlay.tsx
@@ -1,3 +1,4 @@
+import { useColor } from "@artsy/palette-mobile"
import { useScreenDimensions } from "app/utils/hooks"
import { Animated } from "react-native"
import { useSpringFade } from "./useSpringFade"
@@ -7,6 +8,7 @@ import { useSpringFade } from "./useSpringFade"
// jarring pop where the area of the image that was behind the status bar becomes fully visible.
export const StatusBarOverlay: React.FC = () => {
const opacity = useSpringFade("out")
+ const color = useColor()
const { safeAreaInsets } = useScreenDimensions()
return (
{
left: 0,
opacity,
height: safeAreaInsets.top,
- backgroundColor: "white",
+ backgroundColor: color("white100"),
}}
/>
)
diff --git a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/boxShadow.ts b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/boxShadow.ts
index adc87959734..d7b03eafe80 100644
--- a/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/boxShadow.ts
+++ b/src/app/Scenes/Artwork/Components/ImageCarousel/FullScreen/boxShadow.ts
@@ -2,7 +2,7 @@ import { StyleSheet } from "react-native"
export const boxShadow = StyleSheet.create({
boxShadow: {
- shadowColor: "black",
+ shadowColor: "black100",
shadowOffset: { width: 0, height: 1 },
shadowOpacity: 0.1,
},
diff --git a/src/app/Scenes/Artwork/Components/InstagramStoryViewShot.tsx b/src/app/Scenes/Artwork/Components/InstagramStoryViewShot.tsx
index c0775de889c..eff24bf53c9 100644
--- a/src/app/Scenes/Artwork/Components/InstagramStoryViewShot.tsx
+++ b/src/app/Scenes/Artwork/Components/InstagramStoryViewShot.tsx
@@ -1,4 +1,4 @@
-import { ArtsyLogoBlackIcon, Flex, Image, Text } from "@artsy/palette-mobile"
+import { ArtsyLogoBlackIcon, Flex, Image, Text, useColor } from "@artsy/palette-mobile"
import { useOffscreenStyle } from "app/utils/hooks"
import { useDevToggle } from "app/utils/hooks/useDevToggle"
import { useSizeToFitScreen } from "app/utils/useSizeToFit"
@@ -30,6 +30,7 @@ export const InstagramStoryViewShot: React.FC = ({
artist,
title,
}) => {
+ const color = useColor()
const debugInstagramShot = useDevToggle("DTShowInstagramShot")
const { width, height } = useSizeToFitScreen({
width: InstagramStoryBackgroundDimensions.width,
@@ -44,7 +45,7 @@ export const InstagramStoryViewShot: React.FC = ({
diff --git a/src/app/Scenes/BottomTabs/BottomTabsIcon.tsx b/src/app/Scenes/BottomTabs/BottomTabsIcon.tsx
index e997a2ad37a..6bf7f562552 100644
--- a/src/app/Scenes/BottomTabs/BottomTabsIcon.tsx
+++ b/src/app/Scenes/BottomTabs/BottomTabsIcon.tsx
@@ -11,126 +11,126 @@ export const BottomTabsIcon: React.FC<{ tab: BottomTabType; state: "active" | "i
}) => {
const color = useColor()
- return (
-
- )
-}
-
-const ICONS: Record = {
- home: {
- active: (
- <>
+ const ICONS: Record = {
+ home: {
+ active: (
+ <>
+
+
+ >
+ ),
+ inactive: (
+ ),
+ },
+ search: {
+ active: (
- >
- ),
- inactive: (
-
- ),
- },
- search: {
- active: (
-
- ),
- inactive: (
-
- ),
- },
- inbox: {
- active: (
-
- ),
- inactive: (
-
- ),
- },
- sell: {
- active: (
-
- ),
- inactive: (
- <>
+ ),
+ inactive: (
+ ),
+ },
+ inbox: {
+ active: (
- >
- ),
- },
- profile: {
- active: (
- <>
+ ),
+ inactive: (
-
- >
- ),
- inactive: (
- <>
+ ),
+ },
+ sell: {
+ active: (
-
- >
- ),
- },
+ ),
+ inactive: (
+ <>
+
+
+ >
+ ),
+ },
+ profile: {
+ active: (
+ <>
+
+
+ >
+ ),
+ inactive: (
+ <>
+
+
+ >
+ ),
+ },
+ }
+
+ return (
+
+ )
}
diff --git a/src/app/Scenes/City/Components/Event/index.tsx b/src/app/Scenes/City/Components/Event/index.tsx
index cc7fca2676f..9cc00e03625 100644
--- a/src/app/Scenes/City/Components/Event/index.tsx
+++ b/src/app/Scenes/City/Components/Event/index.tsx
@@ -1,5 +1,6 @@
-import { Box, Button, ClassTheme, Flex, Image, Text } from "@artsy/palette-mobile"
+import { Box, Button, Flex, Image, Text } from "@artsy/palette-mobile"
import { EventMutation } from "__generated__/EventMutation.graphql"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { exhibitionDates } from "app/Scenes/Map/exhibitionPeriodParser"
import { Show } from "app/Scenes/Map/types"
import { navigate } from "app/system/navigation/navigate"
@@ -127,7 +128,7 @@ export class Event extends React.Component {
const { isFollowedSaving } = this.state
const url = cover_image ? cover_image.url : null
return (
-
+
{({ color }) => (
this.handleTap()}>
@@ -163,7 +164,7 @@ export class Event extends React.Component {
)}
-
+
)
}
}
diff --git a/src/app/Scenes/City/Components/FairEventSection/Components/FairEventSectionCard.tsx b/src/app/Scenes/City/Components/FairEventSection/Components/FairEventSectionCard.tsx
index 57c8562e22e..7b5b04eb76e 100644
--- a/src/app/Scenes/City/Components/FairEventSection/Components/FairEventSectionCard.tsx
+++ b/src/app/Scenes/City/Components/FairEventSection/Components/FairEventSectionCard.tsx
@@ -37,11 +37,11 @@ export class FairEventSectionCard extends Component {
-
+
{name}
{!!exhibition_period && (
-
+
{exhibition_period}
)}
diff --git a/src/app/Scenes/City/Components/FairEventSection/index.tsx b/src/app/Scenes/City/Components/FairEventSection/index.tsx
index 8ba89afa3e5..d00b45d1e3c 100644
--- a/src/app/Scenes/City/Components/FairEventSection/index.tsx
+++ b/src/app/Scenes/City/Components/FairEventSection/index.tsx
@@ -1,6 +1,7 @@
-import { Box, ClassTheme, Text } from "@artsy/palette-mobile"
+import { Box, Text } from "@artsy/palette-mobile"
import { themeGet } from "@styled-system/theme-get"
import { CaretButton } from "app/Components/Buttons/CaretButton"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { navigate } from "app/system/navigation/navigate"
import { Component } from "react"
import { FlatList } from "react-native"
@@ -37,11 +38,11 @@ export class FairEventSection extends Component {
render() {
const { data } = this.props
return (
-
+
{({ space }) => (
-
+
Fairs
@@ -57,13 +58,13 @@ export class FairEventSection extends Component {
this.viewAllPressed()}
text={`View all ${data.length} fairs`}
- textColor="white"
+ textColor="white100"
/>
)}
)}
-
+
)
}
}
diff --git a/src/app/Scenes/City/Components/LegacyTabBar.tsx b/src/app/Scenes/City/Components/LegacyTabBar.tsx
index c4668c9dc1e..28d45e589f1 100644
--- a/src/app/Scenes/City/Components/LegacyTabBar.tsx
+++ b/src/app/Scenes/City/Components/LegacyTabBar.tsx
@@ -1,5 +1,6 @@
-import { Box, ClassTheme, Text } from "@artsy/palette-mobile"
+import { Box, Text } from "@artsy/palette-mobile"
import { themeGet } from "@styled-system/theme-get"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { Component } from "react"
import { Animated } from "react-native"
import styled from "styled-components/native"
@@ -63,19 +64,19 @@ export default class TabBar extends Component {
onPress={() => onPressHandler(page)}
>
-
+
{({ color }) => (
{name}
)}
-
+
)
@@ -83,8 +84,8 @@ export default class TabBar extends Component {
render() {
return (
-
- {({ space }) => {
+
+ {({ space, color }) => {
// @ts-expect-error STRICTNESS_MIGRATION --- 🚨 Unsafe legacy code 🚨 Please delete this and fix any type errors if you have time 🙏
const containerWidth = this.props.containerWidth - space(4)
const numberOfTabs = this.props.tabs.length
@@ -108,7 +109,7 @@ export default class TabBar extends Component {
position: "absolute",
width: containerWidth / numberOfTabs,
height: 1,
- backgroundColor: "black",
+ backgroundColor: color("black100"),
bottom: -1,
left: 0,
right: 0,
@@ -123,7 +124,7 @@ export default class TabBar extends Component {
)
}}
-
+
)
}
}
diff --git a/src/app/Scenes/City/Components/TabFairItemRow/index.tsx b/src/app/Scenes/City/Components/TabFairItemRow/index.tsx
index ea3e7f30361..b8324c25ef4 100644
--- a/src/app/Scenes/City/Components/TabFairItemRow/index.tsx
+++ b/src/app/Scenes/City/Components/TabFairItemRow/index.tsx
@@ -1,4 +1,5 @@
-import { Flex, Box, ClassTheme, Text } from "@artsy/palette-mobile"
+import { Flex, Box, Text } from "@artsy/palette-mobile"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { ImageWithFallback } from "app/Components/ImageWithFallback/ImageWithFallback"
import { Fair } from "app/Scenes/Map/types"
import { navigate } from "app/system/navigation/navigate"
@@ -19,7 +20,7 @@ export class TabFairItemRow extends React.Component {
const { item } = this.props
const fairImage = item.image ? item.image.url : null
return (
-
+
{({ space }) => {
const boxWidth = Dimensions.get("window").width - 62 - space(4) - space(1)
return (
@@ -51,7 +52,7 @@ export class TabFairItemRow extends React.Component {
)
}}
-
+
)
}
}
diff --git a/src/app/Scenes/Feature/Feature.tsx b/src/app/Scenes/Feature/Feature.tsx
index 7a49b5a1c30..f3a9b8f8dc2 100644
--- a/src/app/Scenes/Feature/Feature.tsx
+++ b/src/app/Scenes/Feature/Feature.tsx
@@ -1,4 +1,4 @@
-import { Spacer, Flex, Text, Separator, Box } from "@artsy/palette-mobile"
+import { Spacer, Flex, Text, Separator, Box, useColor } from "@artsy/palette-mobile"
import { FeatureQuery } from "__generated__/FeatureQuery.graphql"
import { Feature_feature$data } from "__generated__/Feature_feature.graphql"
import { AboveTheFoldFlatList } from "app/Components/AboveTheFoldFlatList"
@@ -52,6 +52,7 @@ interface FeatureAppProps {
}
const FeatureApp: React.FC = ({ feature }) => {
+ const color = useColor()
const sets = extractNodes(feature.sets)
const { width, orientation } = useScreenDimensions()
@@ -177,7 +178,7 @@ const FeatureApp: React.FC = ({ feature }) => {
addSeparatorBetweenAllSections(
contentSections,
"content",
-
+
)
),
]}
diff --git a/src/app/Scenes/Feature/components/FeatureFeaturedLink.tsx b/src/app/Scenes/Feature/components/FeatureFeaturedLink.tsx
index 704e2463a1f..b74d677d7bd 100644
--- a/src/app/Scenes/Feature/components/FeatureFeaturedLink.tsx
+++ b/src/app/Scenes/Feature/components/FeatureFeaturedLink.tsx
@@ -36,11 +36,11 @@ const FeatureFeaturedLink: React.FC = ({ featuredLink,
bottom: 20,
}}
>
-
+
{featuredLink.title}
{!!featuredLink.subtitle && (
-
+
)}
diff --git a/src/app/Scenes/HomeView/Components/HomeHeader.tsx b/src/app/Scenes/HomeView/Components/HomeHeader.tsx
index 81a5227da93..40492cf5cca 100644
--- a/src/app/Scenes/HomeView/Components/HomeHeader.tsx
+++ b/src/app/Scenes/HomeView/Components/HomeHeader.tsx
@@ -14,7 +14,7 @@ export const HomeHeader: React.FC = () => {
)
return (
-
+
{!!showPaymentFailureBanner && (
diff --git a/src/app/Scenes/HomeView/HomeView.tsx b/src/app/Scenes/HomeView/HomeView.tsx
index 4fb6e19a936..a63b8fb365c 100644
--- a/src/app/Scenes/HomeView/HomeView.tsx
+++ b/src/app/Scenes/HomeView/HomeView.tsx
@@ -31,7 +31,6 @@ import { ProvidePlaceholderContext } from "app/utils/placeholders"
import { usePrefetch } from "app/utils/queryPrefetching"
import { requestPushNotificationsPermission } from "app/utils/requestPushNotificationsPermission"
import { useMaybePromptForReview } from "app/utils/useMaybePromptForReview"
-import { useSwitchStatusBarStyle } from "app/utils/useStatusBarStyle"
import { memo, RefObject, Suspense, useCallback, useEffect, useState } from "react"
import { FlatList, Linking, RefreshControl } from "react-native"
import { fetchQuery, graphql, useLazyLoadQuery, usePaginationFragment } from "react-relay"
@@ -204,8 +203,6 @@ const HomeViewScreenComponent: React.FC = () => {
const { isDeepLink } = useIsDeepLink()
- useSwitchStatusBarStyle("dark-content", "dark-content")
-
useEffect(() => {
if (artQuizState === "incomplete" && isNavigationReady) {
// Wait for react-navigation to start drawing the screen before navigating to ArtQuiz
diff --git a/src/app/Scenes/HomeView/Sections/HomeViewSectionCard.tsx b/src/app/Scenes/HomeView/Sections/HomeViewSectionCard.tsx
index f27736af75a..e170d6312d6 100644
--- a/src/app/Scenes/HomeView/Sections/HomeViewSectionCard.tsx
+++ b/src/app/Scenes/HomeView/Sections/HomeViewSectionCard.tsx
@@ -15,6 +15,7 @@ import { HeroUnit } from "app/Scenes/HomeView/Components/HeroUnit"
import { HomeViewSectionSentinel } from "app/Scenes/HomeView/Components/HomeViewSectionSentinel"
import { SectionSharedProps } from "app/Scenes/HomeView/Sections/Section"
import { useHomeViewTracking } from "app/Scenes/HomeView/hooks/useHomeViewTracking"
+import { GlobalStore } from "app/store/GlobalStore"
import { navigate } from "app/system/navigation/navigate"
import { useFeatureFlag } from "app/utils/hooks/useFeatureFlag"
import { NoFallback, withSuspense } from "app/utils/hooks/withSuspense"
@@ -35,6 +36,7 @@ export const HomeViewSectionCard: React.FC = ({
...flexProps
}) => {
const tracking = useHomeViewTracking()
+ const theme = GlobalStore.useAppState((state) => state.devicePrefs.colorScheme)
const { width, height } = useScreenDimensions()
const section = useFragment(HomeViewSectionCardFragment, sectionProp)
@@ -48,7 +50,7 @@ export const HomeViewSectionCard: React.FC = ({
const imageHeight = height * 0.5
const hasImage = !!image?.imageURL
- const textColor = hasImage ? "white100" : "black100"
+ const textColor = hasImage && theme !== "dark" ? "white100" : "black100"
const buttonText = btnText ?? "More"
const route = getRoute(section.card)
@@ -111,7 +113,7 @@ export const HomeViewSectionCard: React.FC = ({
{!!route && (
@@ -120,7 +121,7 @@ export class ConversationSnippet extends React.Component {
{!!exclusiveAccess && (
-
+
Exclusive Access
)}
@@ -130,7 +131,7 @@ export class ConversationSnippet extends React.Component {
mr="15px"
ellipsizeMode="tail"
numberOfLines={3}
- color={conversation.unread ? "black" : "black60"}
+ color={conversation.unread ? "black100" : "black60"}
>
{conversationText}
@@ -140,7 +141,7 @@ export class ConversationSnippet extends React.Component {
)}
-
+
)
}
}
diff --git a/src/app/Scenes/Inbox/Components/Conversations/Message.tsx b/src/app/Scenes/Inbox/Components/Conversations/Message.tsx
index 1a01b7e6303..44ba8e0d285 100644
--- a/src/app/Scenes/Inbox/Components/Conversations/Message.tsx
+++ b/src/app/Scenes/Inbox/Components/Conversations/Message.tsx
@@ -1,5 +1,6 @@
-import { Spacer, Flex, BoxProps, ClassTheme, Text } from "@artsy/palette-mobile"
+import { Spacer, Flex, BoxProps, Text } from "@artsy/palette-mobile"
import { Message_message$data } from "__generated__/Message_message.graphql"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { LegacyNativeModules } from "app/NativeModules/LegacyNativeModules"
import { navigate } from "app/system/navigation/navigate"
import { Schema, Track, track as _track } from "app/utils/track"
@@ -95,7 +96,7 @@ export class Message extends React.Component {
const alignSelf = isFromUser ? "flex-end" : undefined
const alignAttachments = isFromUser ? "flex-end" : "flex-start"
return (
-
+
{({ color }) => {
const backgroundColor = color(isFromUser ? "black100" : "black10")
return (
@@ -132,7 +133,7 @@ export class Message extends React.Component {
>
)
}}
-
+
)
}
}
diff --git a/src/app/Scenes/Inbox/Components/Conversations/MessageGroup.tsx b/src/app/Scenes/Inbox/Components/Conversations/MessageGroup.tsx
index 7f189b69578..bfa60337db6 100644
--- a/src/app/Scenes/Inbox/Components/Conversations/MessageGroup.tsx
+++ b/src/app/Scenes/Inbox/Components/Conversations/MessageGroup.tsx
@@ -1,4 +1,4 @@
-import { Spacer, Flex } from "@artsy/palette-mobile"
+import { Flex, Spacer } from "@artsy/palette-mobile"
import { Message_message$data } from "__generated__/Message_message.graphql"
import { Messages_conversation$data } from "__generated__/Messages_conversation.graphql"
import { OrderUpdate_event$data } from "__generated__/OrderUpdate_event.graphql"
diff --git a/src/app/Scenes/Inbox/Components/Conversations/OpenInquiryModalButton.tsx b/src/app/Scenes/Inbox/Components/Conversations/OpenInquiryModalButton.tsx
index aec2fccde00..41e72f364c1 100644
--- a/src/app/Scenes/Inbox/Components/Conversations/OpenInquiryModalButton.tsx
+++ b/src/app/Scenes/Inbox/Components/Conversations/OpenInquiryModalButton.tsx
@@ -27,7 +27,7 @@ export const OpenInquiryModalButton: React.FC = ({
return (
<>
-
+
@@ -114,7 +114,7 @@ export const OpenInquiryModalButton: React.FC = ({
{(!!isOfferableFromInquiry || !!isOfferableConversationalBuyNow) && (
{
render() {
const { attachment, children, onSelected } = this.props
return (
-
+
{({ color }) => (
{
{children}
)}
-
+
)
}
}
diff --git a/src/app/Scenes/Inbox/Components/Conversations/Preview/ShowPreview.tsx b/src/app/Scenes/Inbox/Components/Conversations/Preview/ShowPreview.tsx
index d06de615ad2..fbb97a73a6c 100644
--- a/src/app/Scenes/Inbox/Components/Conversations/Preview/ShowPreview.tsx
+++ b/src/app/Scenes/Inbox/Components/Conversations/Preview/ShowPreview.tsx
@@ -1,6 +1,7 @@
-import { Flex, ClassTheme, Text, Touchable, Image } from "@artsy/palette-mobile"
+import { Flex, Image, Text, Touchable } from "@artsy/palette-mobile"
import { themeGet } from "@styled-system/theme-get"
import { ShowPreview_show$data } from "__generated__/ShowPreview_show.graphql"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { Schema, Track, track as _track } from "app/utils/track"
import React from "react"
import { createFragmentContainer, graphql } from "react-relay"
@@ -56,7 +57,7 @@ export class ShowPreview extends React.Component {
const name = show.fair ? show.fair.name : show.name
return (
-
+
{({ color }) => (
{
)}
-
+
)
}
}
diff --git a/src/app/Scenes/Inbox/Components/Typography/index.tests.tsx b/src/app/Scenes/Inbox/Components/Typography/index.tests.tsx
index 8f8fe13f5f1..dace9ef5786 100644
--- a/src/app/Scenes/Inbox/Components/Typography/index.tests.tsx
+++ b/src/app/Scenes/Inbox/Components/Typography/index.tests.tsx
@@ -1,12 +1,13 @@
-import { render } from "@testing-library/react-native"
+import { screen } from "@testing-library/react-native"
+import { renderWithWrappers } from "app/utils/tests/renderWithWrappers"
import { Subtitle } from "./"
it("passes on props to subtitle", () => {
- const { getByText } = render(
+ renderWithWrappers(
My Subtitle
)
- expect(getByText(/My Subtitle/)).toHaveProp("numberOfLines", 1)
- expect(getByText(/My Subtitle/)).toHaveProp("ellipsizeMode", "middle")
+ expect(screen.getByText(/My Subtitle/)).toHaveProp("numberOfLines", 1)
+ expect(screen.getByText(/My Subtitle/)).toHaveProp("ellipsizeMode", "middle")
})
diff --git a/src/app/Scenes/Inbox/Components/Typography/index.tsx b/src/app/Scenes/Inbox/Components/Typography/index.tsx
index dfe511c213d..347d75958c1 100644
--- a/src/app/Scenes/Inbox/Components/Typography/index.tsx
+++ b/src/app/Scenes/Inbox/Components/Typography/index.tsx
@@ -1,10 +1,21 @@
-import { useTheme } from "@artsy/palette-mobile"
+import { useColor, useTheme } from "@artsy/palette-mobile"
import { StyleSheet, Text, TextProps, TextStyle } from "react-native"
const LargeHeadline: React.FC = (props) => {
const { theme } = useTheme()
+ const color = useColor()
+
const children: string = (props as any).children
- const style = [styles.largeDefault, props.style || {}, { fontFamily: theme.fonts.sans.regular }]
+ const style = [
+ {
+ fontSize: 30,
+ color: color("black100"),
+ paddingLeft: 20,
+ paddingRight: 20,
+ },
+ props.style || {},
+ { fontFamily: theme.fonts.sans.regular },
+ ]
return (
{children}
@@ -16,7 +27,10 @@ const SmallHeadline: React.FC = (props) => {
const { theme, color } = useTheme()
const children: string = (props as any).children
const style = [
- styles.smallDefault,
+ {
+ fontSize: 11,
+ color: color("black100"),
+ },
props.disabled && { color: color("black30") },
props.style || {},
{ fontFamily: theme.fonts.sans.regular },
@@ -29,8 +43,17 @@ const SmallHeadline: React.FC = (props) => {
}
const Subtitle: React.FC = (props) => {
+ const color = useColor()
const children: string = (props as any).children
- const style = [styles.subtitleDefault, props.style || {}, styles.subtitleRequired]
+ const style = [
+ {
+ fontSize: 14,
+ color: color("black100"),
+ },
+ props.style || {},
+ styles.subtitleRequired,
+ ]
+
return (
{children}
@@ -66,8 +89,16 @@ const MetadataText: React.FC = (props) => {
}
const PreviewText: React.FC = (props) => {
+ const color = useColor()
const children: string = (props as any).children
- const style = [styles.bodyDefault, props.style || {}, styles.bodyRequired]
+ const style = [
+ {
+ fontSize: 16,
+ color: color("black100"),
+ },
+ props.style || {},
+ styles.bodyRequired,
+ ]
return (
{children}
@@ -79,7 +110,10 @@ const BodyText: React.FC = (props) => {
const { color } = useTheme()
const children: string = (props as any).children
const style = [
- styles.bodyDefault,
+ {
+ fontSize: 16,
+ color: color("black100"),
+ },
props.disabled && { color: color("black30") },
props.style || {},
styles.bodyRequired,
@@ -102,10 +136,7 @@ export {
}
interface Styles {
- largeDefault: TextStyle
- smallDefault: TextStyle
subtitleRequired: TextStyle
- subtitleDefault: TextStyle
fromSignatureDefault: TextStyle
metadataDefault: TextStyle
bodyRequired: TextStyle
@@ -113,25 +144,6 @@ interface Styles {
}
const styles = StyleSheet.create({
- largeDefault: {
- fontSize: 30,
- color: "black",
- textAlign: "left",
- paddingLeft: 20,
- paddingRight: 20,
- },
-
- smallDefault: {
- fontSize: 11,
- color: "black",
- textAlign: "left",
- },
-
- subtitleDefault: {
- fontSize: 14,
- color: "black",
- },
-
subtitleRequired: {
fontFamily: "Unica77LL-Italic",
},
diff --git a/src/app/Scenes/Map/Components/CitySwitcherButton.tsx b/src/app/Scenes/Map/Components/CitySwitcherButton.tsx
index 98db2218253..2f53a836c9d 100644
--- a/src/app/Scenes/Map/Components/CitySwitcherButton.tsx
+++ b/src/app/Scenes/Map/Components/CitySwitcherButton.tsx
@@ -1,4 +1,5 @@
-import { Flex, Box, ClassTheme, Text } from "@artsy/palette-mobile"
+import { Box, Flex, Text } from "@artsy/palette-mobile"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import ChevronIcon from "app/Components/Icons/ChevronIcon"
import Spinner from "app/Components/Spinner"
import { LegacyNativeModules } from "app/NativeModules/LegacyNativeModules"
@@ -31,7 +32,7 @@ export class CitySwitcherButton extends Component {
render() {
const { city, isLoading } = this.props
return isLoading || city ? (
-
+
{({ color }) => (
{
@@ -81,7 +82,7 @@ export class CitySwitcherButton extends Component {
)}
-
+
) : null
}
}
diff --git a/src/app/Scenes/Map/Components/ShowCard.tsx b/src/app/Scenes/Map/Components/ShowCard.tsx
index 96fb04d9045..5097f7961ce 100644
--- a/src/app/Scenes/Map/Components/ShowCard.tsx
+++ b/src/app/Scenes/Map/Components/ShowCard.tsx
@@ -1,5 +1,6 @@
-import { Box, ClassTheme, Text } from "@artsy/palette-mobile"
+import { Box, Text } from "@artsy/palette-mobile"
import { themeGet } from "@styled-system/theme-get"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { ShowItemRow } from "app/Components/Lists/ShowItemRow"
import { TabFairItemRow } from "app/Scenes/City/Components/TabFairItemRow"
import { Fair, Show } from "app/Scenes/Map/types"
@@ -154,7 +155,7 @@ export class ShowCard extends Component {
return hasOne ? (
show && this.renderItem({ item: show }, true)
) : (
-
+
{({ space }) => (
<>
@@ -186,7 +187,7 @@ export class ShowCard extends Component {
/>
>
)}
-
+
)
}
}
diff --git a/src/app/Scenes/Map/GlobalMap.tsx b/src/app/Scenes/Map/GlobalMap.tsx
index c6fb224e574..eaa71e5ac95 100644
--- a/src/app/Scenes/Map/GlobalMap.tsx
+++ b/src/app/Scenes/Map/GlobalMap.tsx
@@ -1,7 +1,8 @@
-import { Box, ClassTheme, Flex, Text } from "@artsy/palette-mobile"
+import { Box, Flex, Text } from "@artsy/palette-mobile"
import MapboxGL from "@rnmapbox/maps"
import { themeGet } from "@styled-system/theme-get"
import { GlobalMap_viewer$data } from "__generated__/GlobalMap_viewer.graphql"
+import { ThemeAwareClassTheme } from "app/Components/DarkModeClassTheme"
import { Pin } from "app/Components/Icons/Pin"
import PinFairSelected from "app/Components/Icons/PinFairSelected"
import PinSavedSelected from "app/Components/Icons/PinSavedSelected"
@@ -354,7 +355,7 @@ export class GlobalMap extends React.Component {
clusterLat &&
clusterLng &&
pointCount && (
-
+
{({ color }) => (
{
)}
-
+
)
)
}
@@ -541,7 +542,7 @@ export class GlobalMap extends React.Component {
}
return (
-
+
{({ color }) => (
{
)}
-
+
)
}
diff --git a/src/app/Scenes/MyCollection/Components/MyCollectionBottomSheetModals/MyCollectionBottomSheetModalAdd.tsx b/src/app/Scenes/MyCollection/Components/MyCollectionBottomSheetModals/MyCollectionBottomSheetModalAdd.tsx
index 47742e237ac..fec8a52dba1 100644
--- a/src/app/Scenes/MyCollection/Components/MyCollectionBottomSheetModals/MyCollectionBottomSheetModalAdd.tsx
+++ b/src/app/Scenes/MyCollection/Components/MyCollectionBottomSheetModals/MyCollectionBottomSheetModalAdd.tsx
@@ -29,7 +29,7 @@ export const MyCollectionBottomSheetModalAdd: React.FC<{}> = () => {
},
})
}}
- icon={}
+ icon={}
py="40px"
/>
diff --git a/src/app/Scenes/MyCollection/Components/MyCollectionBottomSheetModals/MyCollectionBottomSheetModals.tsx b/src/app/Scenes/MyCollection/Components/MyCollectionBottomSheetModals/MyCollectionBottomSheetModals.tsx
index 8f350595313..8b7403cf497 100644
--- a/src/app/Scenes/MyCollection/Components/MyCollectionBottomSheetModals/MyCollectionBottomSheetModals.tsx
+++ b/src/app/Scenes/MyCollection/Components/MyCollectionBottomSheetModals/MyCollectionBottomSheetModals.tsx
@@ -1,3 +1,4 @@
+import { useColor } from "@artsy/palette-mobile"
import BottomSheet, { BottomSheetProps } from "@gorhom/bottom-sheet"
import { DefaultBottomSheetBackdrop } from "app/Components/BottomSheet/DefaultBottomSheetBackdrop"
import { MyCollectionBottomSheetModalAdd } from "app/Scenes/MyCollection/Components/MyCollectionBottomSheetModals/MyCollectionBottomSheetModalAdd"
@@ -8,6 +9,7 @@ import { useCallback, useMemo, useRef } from "react"
export type MyCollectionBottomSheetModalKind = "Add" | "Artist" | null
export const MyCollectionBottomSheetModals: React.FC<{}> = () => {
+ const color = useColor()
const bottomSheetRef = useRef(null)
const setViewKind = MyCollectionTabsStore.useStoreActions((actions) => actions.setViewKind)
@@ -43,7 +45,15 @@ export const MyCollectionBottomSheetModals: React.FC<{}> = () => {
snapPoints={snapPoints}
enablePanDownToClose
backdropComponent={renderBackdrop}
- handleIndicatorStyle={{ backgroundColor: "black", width: 40, height: 4, borderRadius: 2 }}
+ handleIndicatorStyle={{
+ backgroundColor: color("black100"),
+ width: 40,
+ height: 4,
+ borderRadius: 2,
+ }}
+ backgroundStyle={{
+ backgroundColor: color("white100"),
+ }}
>
{view === "Add" && }
{view === "Artist" && !!artistId && !!interestId ? (
diff --git a/src/app/Scenes/MyCollection/Components/MyCollectionStickyHeader.tsx b/src/app/Scenes/MyCollection/Components/MyCollectionStickyHeader.tsx
index 0c1d3d9df5c..6cb691be27b 100644
--- a/src/app/Scenes/MyCollection/Components/MyCollectionStickyHeader.tsx
+++ b/src/app/Scenes/MyCollection/Components/MyCollectionStickyHeader.tsx
@@ -50,7 +50,7 @@ export const MyCollectionStickyHeader: React.FC =
}, [selectedTab, hasArtworks])
return (
-
+
| null }
export const MyCollectionArtworkForm: React.FC = (props) => {
+ const color = useColor()
+ const theme = useNavigationTheme()
const enableShowError = useDevToggle("DTShowErrorInLoadFailureView")
const { trackEvent } = useTracking()
const { formValues, dirtyFormCheckValues } = GlobalStore.useAppState(
@@ -155,14 +158,14 @@ export const MyCollectionArtworkForm: React.FC = (
const { width, height } = Dimensions.get("screen")
return (
-
+
{mode === "add" && (
diff --git a/src/app/Scenes/MyCollection/Screens/Insights/CareerHighlightBottomSheet.tsx b/src/app/Scenes/MyCollection/Screens/Insights/CareerHighlightBottomSheet.tsx
index 86b2889ad7b..befa6771c7f 100644
--- a/src/app/Scenes/MyCollection/Screens/Insights/CareerHighlightBottomSheet.tsx
+++ b/src/app/Scenes/MyCollection/Screens/Insights/CareerHighlightBottomSheet.tsx
@@ -95,7 +95,12 @@ export const CareerHighlightBottomSheet: React.FC (
-
+
),
[]
)
diff --git a/src/app/Scenes/MyCollection/Screens/Insights/CareerHighlightCard.tsx b/src/app/Scenes/MyCollection/Screens/Insights/CareerHighlightCard.tsx
index 2c37506c159..8628a64842b 100644
--- a/src/app/Scenes/MyCollection/Screens/Insights/CareerHighlightCard.tsx
+++ b/src/app/Scenes/MyCollection/Screens/Insights/CareerHighlightCard.tsx
@@ -40,7 +40,14 @@ export const CareerHighlightsCard: React.FC = ({
return (
-
+
{
ml={1}
height={135}
width={205}
- backgroundColor="white"
+ backgroundColor="background"
border={1}
borderColor="black10"
>
diff --git a/src/app/Scenes/MyProfile/DarkModeSettings.tsx b/src/app/Scenes/MyProfile/DarkModeSettings.tsx
index af43a7b33ca..660cedde515 100644
--- a/src/app/Scenes/MyProfile/DarkModeSettings.tsx
+++ b/src/app/Scenes/MyProfile/DarkModeSettings.tsx
@@ -1,7 +1,7 @@
-import { Flex, Text } from "@artsy/palette-mobile"
-import { PageWithSimpleHeader } from "app/Components/PageWithSimpleHeader"
+import { Flex } from "@artsy/palette-mobile"
import { SwitchMenu } from "app/Components/SwitchMenu"
import { GlobalStore } from "app/store/GlobalStore"
+import { LayoutAnimation, ScrollView } from "react-native"
export function DarkModeSettings() {
const syncWithSystem = GlobalStore.useAppState(
@@ -10,16 +10,14 @@ export function DarkModeSettings() {
const forceMode = GlobalStore.useAppState((state) => state.devicePrefs.forcedColorScheme)
return (
-
-
- Choose your destiny
-
-
+
+
{
+ LayoutAnimation.configureNext(LayoutAnimation.Presets.spring)
GlobalStore.actions.devicePrefs.setUsingSystemColorScheme(value)
}}
/>
@@ -29,10 +27,11 @@ export function DarkModeSettings() {
value={forceMode === "dark"}
disabled={syncWithSystem}
onChange={(value) => {
+ LayoutAnimation.configureNext(LayoutAnimation.Presets.spring)
GlobalStore.actions.devicePrefs.setForcedColorScheme(value ? "dark" : "light")
}}
/>
-
+
)
}
diff --git a/src/app/Scenes/MyProfile/DevicePrefsModel.ts b/src/app/Scenes/MyProfile/DevicePrefsModel.ts
index c8cefec0ae2..5e957249199 100644
--- a/src/app/Scenes/MyProfile/DevicePrefsModel.ts
+++ b/src/app/Scenes/MyProfile/DevicePrefsModel.ts
@@ -1,7 +1,7 @@
import { GlobalStoreModel } from "app/store/GlobalStoreModel"
import { EnvironmentModel, getEnvironmentModel } from "app/store/config/EnvironmentModel"
-import { action, Action, computed, Computed } from "easy-peasy"
-import { Appearance } from "react-native"
+import { action, Action, computed, Computed, effectOn, EffectOn } from "easy-peasy"
+import { Appearance, StatusBar } from "react-native"
export interface DevicePrefsModel {
environment: EnvironmentModel
@@ -16,6 +16,7 @@ export interface DevicePrefsModel {
setUsingSystemColorScheme: Action
setForcedColorScheme: Action
setIsDeepZoomModalVisible: Action
+ updateStatusBarStyle: EffectOn
}
export const getDevicePrefsModel = (): DevicePrefsModel => ({
@@ -44,4 +45,14 @@ export const getDevicePrefsModel = (): DevicePrefsModel => ({
setIsDeepZoomModalVisible: action((state, isVisible) => {
state.sessionState.isDeepZoomModalVisible = isVisible
}),
+ updateStatusBarStyle: effectOn([(state) => state], (_, change) => {
+ const [state] = change.current
+ if (state.colorScheme === "dark") {
+ StatusBar.setBarStyle("light-content")
+ Appearance.setColorScheme("dark")
+ } else {
+ StatusBar.setBarStyle("dark-content")
+ Appearance.setColorScheme("light")
+ }
+ }),
})
diff --git a/src/app/Scenes/MyProfile/MyProfile.tsx b/src/app/Scenes/MyProfile/MyProfile.tsx
index d202ee2bd69..38314c5ac2e 100644
--- a/src/app/Scenes/MyProfile/MyProfile.tsx
+++ b/src/app/Scenes/MyProfile/MyProfile.tsx
@@ -1,5 +1,7 @@
+import { useColor } from "@artsy/palette-mobile"
import { NavigationContainer } from "@react-navigation/native"
import { createStackNavigator, StackScreenProps } from "@react-navigation/stack"
+import { useNavigationTheme } from "app/Navigation/useNavigationTheme"
import { MyCollectionArtworkForm } from "app/Scenes/MyCollection/Screens/ArtworkForm/MyCollectionArtworkForm"
import { memo } from "react"
import { MyProfileEditFormScreen } from "./MyProfileEditForm"
@@ -10,14 +12,17 @@ const Stack = createStackNavigator()
type MyProfileProps = StackScreenProps
export const MyProfile: React.FC = memo(() => {
+ const color = useColor()
+ const theme = useNavigationTheme()
+
return (
-
+
= () => {
- Choose an Image
+
+ Choose an Image
+
@@ -322,16 +324,14 @@ const LoadingSkeleton = () => {
}
const VerifiedRow: React.FC<{ title: string; subtitle: string }> = ({ title, subtitle }) => {
- const color = useColor()
-
return (
- {title}
- {subtitle}
+ {title}
+ {subtitle}
)
@@ -366,13 +366,18 @@ const ProfileVerifications = ({
-
+
Verify Your ID
For details, see{" "}
navigate(`https://www.artsy.net/identity-verification-faq`)}
>
FAQs
@@ -381,6 +386,7 @@ const ProfileVerifications = ({
sendEmail("verification@artsy.net", { subject: "ID Verification" })}
+ color="black100"
>
verification@artsy.net
diff --git a/src/app/Scenes/MyProfile/MyProfileSettings.tsx b/src/app/Scenes/MyProfile/MyProfileSettings.tsx
index a296bb9e069..3575677ff7d 100644
--- a/src/app/Scenes/MyProfile/MyProfileSettings.tsx
+++ b/src/app/Scenes/MyProfile/MyProfileSettings.tsx
@@ -15,7 +15,9 @@ export const MyProfileSettings: React.FC = () => {
const separatorColor = color("black5")
return (
-
+
Settings
@@ -51,6 +53,15 @@ export const MyProfileSettings: React.FC = () => {
/>
+
diff --git a/src/app/utils/DynamicIslandStagingIndicator.tsx b/src/app/utils/DynamicIslandStagingIndicator.tsx
index 9c0c2366127..a293d4eb1dd 100644
--- a/src/app/utils/DynamicIslandStagingIndicator.tsx
+++ b/src/app/utils/DynamicIslandStagingIndicator.tsx
@@ -39,7 +39,13 @@ export const DynamicIslandStagingIndicator = () => {
alignItems="center"
justifyContent="center"
>
-
+
)
}
diff --git a/src/app/utils/NetworkAwareProvider.tsx b/src/app/utils/NetworkAwareProvider.tsx
index 1ccf0ae3c15..9866da7e100 100644
--- a/src/app/utils/NetworkAwareProvider.tsx
+++ b/src/app/utils/NetworkAwareProvider.tsx
@@ -32,7 +32,7 @@ export const NetworkAwareProvider: React.FC<{}> = () => {
>
= (props) => {
+ const color = useColor()
return (
-
+
(
-
+
{({ color, space }) => (
)}
-
+
),
},
hr: {
diff --git a/src/app/utils/useStatusBarStyle.ts b/src/app/utils/useStatusBarStyle.ts
index 720f24f8a18..6f3f3538d95 100644
--- a/src/app/utils/useStatusBarStyle.ts
+++ b/src/app/utils/useStatusBarStyle.ts
@@ -1,4 +1,5 @@
import { useNavigation } from "@react-navigation/native"
+import { GlobalStore } from "app/store/GlobalStore"
import { useEffect } from "react"
import { StatusBar, StatusBarStyle } from "react-native"
@@ -28,10 +29,12 @@ export const useSwitchStatusBarStyle = (
styleOnFocus: StatusBarStyle,
styleOnBlur: StatusBarStyle
) => {
+ const theme = GlobalStore.useAppState((state) => state.devicePrefs.colorScheme)
+
const navigation = useNavigation()
useEffect(() => {
const unsubscribe = navigation.addListener("focus", () => {
- StatusBar.setBarStyle(styleOnFocus)
+ StatusBar.setBarStyle(theme === "light" ? styleOnFocus : styleOnBlur)
})
return unsubscribe
@@ -39,7 +42,7 @@ export const useSwitchStatusBarStyle = (
useEffect(() => {
const unsubscribe = navigation.addListener("blur", () => {
- StatusBar.setBarStyle(styleOnBlur)
+ StatusBar.setBarStyle(theme === "light" ? styleOnBlur : styleOnFocus)
})
return unsubscribe
diff --git a/src/app/utils/useStickyScrollHeader.tsx b/src/app/utils/useStickyScrollHeader.tsx
index 6943dfedee9..e3ed62bec87 100644
--- a/src/app/utils/useStickyScrollHeader.tsx
+++ b/src/app/utils/useStickyScrollHeader.tsx
@@ -27,7 +27,7 @@ export const useStickyScrollHeader = ({
const calculatedFadeInEnd: number = !!fadeInEnd ? fadeInEnd : fadeInStart + FADE_LENGTH
header =
!header && !!headerText ? (
-
+
@@ -37,7 +37,7 @@ export const useStickyScrollHeader = ({
) : (
-
+
{header}
)
diff --git a/yarn.lock b/yarn.lock
index a8c3041cb3b..8b4876365af 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -17,10 +17,10 @@
dependencies:
core-js "3"
-"@artsy/palette-mobile@14.0.16":
- version "14.0.16"
- resolved "https://registry.yarnpkg.com/@artsy/palette-mobile/-/palette-mobile-14.0.16.tgz#ac2f12bd64b5bab5d0937346b91b64b37a0abfcd"
- integrity sha512-oHt0+tX1gbi02JgnfHjH+sbA6Myxpxbd+wKNdRmoCfW4I/LE6Oy2FFe3rhOXPO1F4C3EhjXlJ+WE0aIVctMTZA==
+"@artsy/palette-mobile@14.0.17--canary.299.3060.0":
+ version "14.0.17--canary.299.3060.0"
+ resolved "https://registry.yarnpkg.com/@artsy/palette-mobile/-/palette-mobile-14.0.17--canary.299.3060.0.tgz#6def5a14d8419639986dfde850f770f74d6dbc87"
+ integrity sha512-LRMKgnluPW3cqzBHaFFkJmzaHanxycYIQb0G/8LzNwYOlky+L62q/1zZDnrObkYriK4qgyp57SmRZAL5mWpI1g==
dependencies:
"@artsy/palette-tokens" "^6.0.3"
"@shopify/flash-list" "1.7.1"
@@ -3621,36 +3621,71 @@
resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.36.1.tgz#786adf6984dbe3c6fb7dac51b625c314117b807d"
integrity sha512-JOHQjVD8Kqxm1jUKioAP5ohLOITf+Dh6+DBz4gQjCNdotsvNW5m63TKROwq2oB811p+Jzv5304ujmN4cAqW1Ww==
+"@sentry/cli-darwin@2.41.1":
+ version "2.41.1"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.41.1.tgz#ca7e12bf1ad59bc2df35868ae98abc8869108efa"
+ integrity sha512-7pS3pu/SuhE6jOn3wptstAg6B5nUP878O6s+2svT7b5fKNfYUi/6NPK6dAveh2Ca0rwVq40TO4YFJabWMgTpdQ==
+
"@sentry/cli-linux-arm64@2.36.1":
version "2.36.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.36.1.tgz#ff449d7e7e715166257998c02cf635ca02acbadd"
integrity sha512-R//3ZEkbzvoStr3IA7nxBZNiBYyxOljOqAhgiTnejXHmnuwDzM3TBA2n5vKPE/kBFxboEBEw0UTzTIRb1T0bgw==
+"@sentry/cli-linux-arm64@2.41.1":
+ version "2.41.1"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.41.1.tgz#948e8af8290418b1562db3531db08e69e39d74bb"
+ integrity sha512-EzYCEnnENBnS5kpNW+2dBcrPZn1MVfywh2joGVQZTpmgDL5YFJ59VOd+K0XuEwqgFI8BSNI14KXZ75s4DD1/Vw==
+
"@sentry/cli-linux-arm@2.36.1":
version "2.36.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.36.1.tgz#1ae5d335a1b4cd217a34c2bd6c6f5e0670136eb3"
integrity sha512-gvEOKN0fWL2AVqUBKHNXPRZfJNvKTs8kQhS8cQqahZGgZHiPCI4BqW45cKMq+ZTt1UUbLmt6khx5Dz7wi+0i5A==
+"@sentry/cli-linux-arm@2.41.1":
+ version "2.41.1"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.41.1.tgz#1e5fa971ae8dfb3ea5564c8503b4e635ae6aed8a"
+ integrity sha512-wNUvquD6qjOCczvuBGf9OiD29nuQ6yf8zzfyPJa5Bdx1QXuteKsKb6HBrMwuIR3liyuu0duzHd+H/+p1n541Hg==
+
"@sentry/cli-linux-i686@2.36.1":
version "2.36.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.36.1.tgz#112b9e26357e918cbbba918114ec8cdab07cdf60"
integrity sha512-R7sW5Vk/HacVy2YgQoQB+PwccvFYf2CZVPSFSFm2z7MEfNe77UYHWUq+sjJ4vxWG6HDWGVmaX0fjxyDkE01JRA==
+"@sentry/cli-linux-i686@2.41.1":
+ version "2.41.1"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.41.1.tgz#3f01aff314f2ad8fd761f3e6e807a5ec09ae4eb4"
+ integrity sha512-urpQCWrdYnSAsZY3udttuMV88wTJzKZL10xsrp7sjD/Hd+O6qSLVLkxebIlxts70jMLLFHYrQ2bkRg5kKuX6Fg==
+
"@sentry/cli-linux-x64@2.36.1":
version "2.36.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.36.1.tgz#c3e5bdb0c9a4bb44c83927c62a3cd7e006709bf7"
integrity sha512-UMr3ik8ksA7zQfbzsfwCb+ztenLnaeAbX94Gp+bzANZwPfi/vVHf2bLyqsBs4OyVt9SPlN1bbM/RTGfMjZ3JOw==
+"@sentry/cli-linux-x64@2.41.1":
+ version "2.41.1"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.41.1.tgz#30dbf966a4b4c1721ffccd901dfcb6f967db073d"
+ integrity sha512-ZqpYwHXAaK4MMEFlyaLYr6mJTmpy9qP6n30jGhLTW7kHKS3s6GPLCSlNmIfeClrInEt0963fM633ZRnXa04VPw==
+
"@sentry/cli-win32-i686@2.36.1":
version "2.36.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.36.1.tgz#819573320e885e1dbf59b0a01d3bd370c84c1708"
integrity sha512-CflvhnvxPEs5GWQuuDtYSLqPrBaPbcSJFlBuUIb+8WNzRxvVfjgw1qzfZmkQqABqiy/YEsEekllOoMFZAvCcVA==
+"@sentry/cli-win32-i686@2.41.1":
+ version "2.41.1"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.41.1.tgz#f88eeb5d2d4ee46c38d8616ae1eb484108ea71c2"
+ integrity sha512-AuRimCeVsx99DIOr9cwdYBHk39tlmAuPDdy2r16iNzY0InXs4xOys4gGzM7N4vlFQvFkzuc778Su0HkfasgprA==
+
"@sentry/cli-win32-x64@2.36.1":
version "2.36.1"
resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.36.1.tgz#80779b4bffb4e2e32944eae72c60e6f40151b4dc"
integrity sha512-wWqht2xghcK3TGnooHZSzA3WSjdtno/xFjZLvWmw38rblGwgKMxLZnlxV6uDyS+OJ6CbfDTlCRay/0TIqA0N8g==
+"@sentry/cli-win32-x64@2.41.1":
+ version "2.41.1"
+ resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.41.1.tgz#eefd95a2aa184adb464334e265b55a9142070f6f"
+ integrity sha512-6JcPvXGye61+wPp0xdzfc2YLE/Dcud8JdaK8VxLM3b/8+Em7E+UyliDu3uF8+YGUqizY5JYTd3fs17DC8DZhLw==
+
"@sentry/cli@2.36.1":
version "2.36.1"
resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.36.1.tgz#a9146b798cb6d2f782a7a48d74633ddcd88dc8d3"
@@ -3670,6 +3705,25 @@
"@sentry/cli-win32-i686" "2.36.1"
"@sentry/cli-win32-x64" "2.36.1"
+"@sentry/cli@2.41.1":
+ version "2.41.1"
+ resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.41.1.tgz#a9467ca3ff4acfcdedec1565c9ff726b93758d29"
+ integrity sha512-0GVmDiTV7R1492wkVY4bGcfC0fSmRmQjuxaaPI8CIV9B2VP9pBVCUizi1mevXaaE4I3fM60LI+XYrKFEneuVog==
+ dependencies:
+ https-proxy-agent "^5.0.0"
+ node-fetch "^2.6.7"
+ progress "^2.0.3"
+ proxy-from-env "^1.1.0"
+ which "^2.0.2"
+ optionalDependencies:
+ "@sentry/cli-darwin" "2.41.1"
+ "@sentry/cli-linux-arm" "2.41.1"
+ "@sentry/cli-linux-arm64" "2.41.1"
+ "@sentry/cli-linux-i686" "2.41.1"
+ "@sentry/cli-linux-x64" "2.41.1"
+ "@sentry/cli-win32-i686" "2.41.1"
+ "@sentry/cli-win32-x64" "2.41.1"
+
"@sentry/core@7.119.0":
version "7.119.0"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.119.0.tgz#a6e41119bb03ec27689f9ad04e79d1fba5b7fc37"