diff --git a/apps/expo/app/(tabs)/apps/_layout.tsx b/apps/expo/app/(tabs)/apps/_layout.tsx
index b0955b2..3a9ac4c 100644
--- a/apps/expo/app/(tabs)/apps/_layout.tsx
+++ b/apps/expo/app/(tabs)/apps/_layout.tsx
@@ -8,8 +8,8 @@ export const unstable_settings = {
const OverviewLayout = observer(() => {
return (
-
-
+
+
);
});
diff --git a/apps/expo/app/(tabs)/overview/[appId].tsx b/apps/expo/app/(tabs)/overview/[appId].tsx
index 4e96f47..c0c2922 100644
--- a/apps/expo/app/(tabs)/overview/[appId].tsx
+++ b/apps/expo/app/(tabs)/overview/[appId].tsx
@@ -20,7 +20,7 @@ const generateData = ({ statistic }: { statistic: { value: number; timestamp: nu
.sort((a, b) => dayjs(a.timestamp).valueOf() - dayjs(b.timestamp).valueOf())
.map((item, index) => {
const date = dayjs(item.timestamp).format("DD MMM YYYY");
- const showLabel = dayjs(item.timestamp).date() % 10 === 1 || index === 0 || index === statistic.length - 1;
+ const showLabel = dayjs(item.timestamp).date() % 11 === 1 || index === 0 || index === statistic.length - 1;
return {
value: item.value,
date: date,
diff --git a/apps/expo/app/(tabs)/overview/_layout.tsx b/apps/expo/app/(tabs)/overview/_layout.tsx
index b0955b2..6fde18c 100644
--- a/apps/expo/app/(tabs)/overview/_layout.tsx
+++ b/apps/expo/app/(tabs)/overview/_layout.tsx
@@ -8,8 +8,8 @@ export const unstable_settings = {
const OverviewLayout = observer(() => {
return (
-
-
+
+
);
});
diff --git a/apps/expo/app/(tabs)/overview/index.tsx b/apps/expo/app/(tabs)/overview/index.tsx
index 3f96596..a60f59e 100644
--- a/apps/expo/app/(tabs)/overview/index.tsx
+++ b/apps/expo/app/(tabs)/overview/index.tsx
@@ -96,7 +96,7 @@ const Overview = observer(() => {
{percentageSavedInComparisonToLastWeek !== 0 && (
-
+
)}
diff --git a/apps/expo/app/(tabs)/overview/weekly.summary.tsx b/apps/expo/app/(tabs)/overview/weekly.summary.tsx
index b13c5a7..247b1f3 100644
--- a/apps/expo/app/(tabs)/overview/weekly.summary.tsx
+++ b/apps/expo/app/(tabs)/overview/weekly.summary.tsx
@@ -47,7 +47,9 @@ export const WeeklySummary = () => {
: `Saved ${savedThisWeek}h this week`}
- {savedThisWeekInPercentage !== 0 && }
+ {savedThisWeekInPercentage !== 0 && (
+
+ )}
diff --git a/apps/expo/app/_layout.tsx b/apps/expo/app/_layout.tsx
index 5636236..c09cf62 100644
--- a/apps/expo/app/_layout.tsx
+++ b/apps/expo/app/_layout.tsx
@@ -3,7 +3,7 @@ import { AppState } from "react-native";
import { useFonts } from "expo-font";
import { router, SplashScreen, Stack } from "expo-router";
import { DarkTheme, DefaultTheme, ThemeProvider as NavigationThemeProvider } from "@react-navigation/native";
-import { getTokenValue, TamaguiProvider } from "tamagui";
+import { TamaguiProvider, useTheme as useThemeTamagui } from "tamagui";
import "../data/logger";
@@ -79,6 +79,7 @@ function RootLayoutNav() {
const NavigationStack = () => {
const { theme } = useTheme();
+ const tamaguiTheme = useThemeTamagui();
return (
{
colors: {
...DefaultTheme.colors,
background: "#FFFFFF",
- text: getTokenValue("$text11") as string,
- primary: getTokenValue("$text11") as string,
- border: getTokenValue("$grey3") as string,
+ text: tamaguiTheme.text11?.val as string,
+ primary: tamaguiTheme.text11?.val as string,
+ border: tamaguiTheme.grey3?.val as string,
},
}
: {
diff --git a/apps/expo/app/settings/theme.tsx b/apps/expo/app/settings/theme.tsx
index 6de4a35..7762b9f 100644
--- a/apps/expo/app/settings/theme.tsx
+++ b/apps/expo/app/settings/theme.tsx
@@ -1,4 +1,4 @@
-/* eslint-disable @typescript-eslint/no-var-requires */
+
import { Check, Moon, Smartphone, Sun } from "@tamagui/lucide-icons";
import { ListItem, View, YGroup, YStack } from "tamagui";
diff --git a/apps/expo/components/line.chart.tsx b/apps/expo/components/line.chart.tsx
index d82ea8f..037a187 100644
--- a/apps/expo/components/line.chart.tsx
+++ b/apps/expo/components/line.chart.tsx
@@ -1,6 +1,6 @@
import type { Text as ReactNativeText } from "react-native";
import { LineChart as LineChartGifted } from "react-native-gifted-charts";
-import { getTokenValue, H4, Paragraph, Text, View, YStack } from "tamagui";
+import { H4, Paragraph, Text, useTheme, View, YStack } from "tamagui";
export const LineChart = ({
data,
@@ -16,8 +16,9 @@ export const LineChart = ({
labelSuffix?: string;
dummy?: boolean;
}) => {
- const grey3 = getTokenValue("$grey3") as string;
- const grey4 = getTokenValue("$grey4") as string;
+ const theme = useTheme();
+ const grey3 = theme.grey3?.val as string;
+ const grey4 = theme.grey4?.val as string;
return (
{dummy && (
diff --git a/apps/expo/components/percentage.trend.tsx b/apps/expo/components/percentage.trend.tsx
index 0f20529..d7c0fe4 100644
--- a/apps/expo/components/percentage.trend.tsx
+++ b/apps/expo/components/percentage.trend.tsx
@@ -1,7 +1,15 @@
import { TrendingDown, TrendingUp } from "@tamagui/lucide-icons";
import { Paragraph, XStack } from "tamagui";
-export const PercentageTrend = ({ percentage }: { percentage: number }) => (
+export const PercentageTrend = ({
+ percentage,
+ affix,
+ hideIcon,
+}: {
+ percentage: number;
+ affix?: string;
+ hideIcon?: boolean;
+}) => (
0 ? "rgba(103,214,93,0.2)" : "rgba(255,0,0,0.2)"}
borderRadius={"$2"}
@@ -11,12 +19,14 @@ export const PercentageTrend = ({ percentage }: { percentage: number }) => (
paddingVertical="$1"
>
0 ? "#67D65D" : "red"} fontWeight={"bold"}>
- {Math.round(percentage)}% {percentage > 0 ? "more" : "less"}
+ {Math.round(percentage)}%{!affix && (percentage > 0 ? " more" : " less")}
+ {affix ? ` ${affix}` : ``}
- {percentage > 0 ? (
-
- ) : (
-
- )}
+ {!hideIcon &&
+ (percentage > 0 ? (
+
+ ) : (
+
+ ))}
);
diff --git a/apps/expo/components/pie.chart.tsx b/apps/expo/components/pie.chart.tsx
index bfc95f2..261d1cd 100644
--- a/apps/expo/components/pie.chart.tsx
+++ b/apps/expo/components/pie.chart.tsx
@@ -1,6 +1,6 @@
import { useEffect, useState } from "react";
import { PieChart as PieChartGifted } from "react-native-gifted-charts";
-import { getTokenValue, H4, Paragraph, SizableText, View, YStack } from "tamagui";
+import { H4, Paragraph, SizableText, useTheme, View, YStack } from "tamagui";
export const PieChart = ({
data,
@@ -16,7 +16,8 @@ export const PieChart = ({
labelSuffix?: string;
dummy?: boolean;
}) => {
- const grey4 = getTokenValue("$grey4") as string;
+ const theme = useTheme();
+ const grey4 = theme.grey4?.val as string;
const [focusedData, setFocusedData] = useState<(typeof data)[0] | null>(null);
useEffect(() => {
setFocusedData(data.find((d) => d.focused) ?? data[0] ?? null);
diff --git a/apps/expo/components/theme-provider.tsx b/apps/expo/components/theme-provider.tsx
index 0440f84..4caf764 100644
--- a/apps/expo/components/theme-provider.tsx
+++ b/apps/expo/components/theme-provider.tsx
@@ -35,9 +35,11 @@ export const ThemeProvider = ({ children }: { children: React.ReactNode }) => {
clearTimeout(onColorSchemeChange.current);
}
const storedTheme = await AsyncStorage.getItem("theme");
- setThemeState(storedTheme as ThemeType);
+ setAutoTheme(storedTheme === "auto");
if (storedTheme === "auto") {
setThemeState(colorScheme === "dark" ? "dark" : "light");
+ } else {
+ setThemeState(storedTheme as ThemeType);
}
};
void init();