Fix ViewWeightGraph - 1.165 🚀

This commit is contained in:
Brandon Presley 2023-10-26 20:43:48 +13:00
parent 541e8741e8
commit 2428a51a02
6 changed files with 23 additions and 29 deletions

View File

@ -2,17 +2,14 @@ import { useMemo } from "react";
import { useWindowDimensions } from "react-native"; import { useWindowDimensions } from "react-native";
import { LineChart } from "react-native-chart-kit"; import { LineChart } from "react-native-chart-kit";
import { AbstractChartConfig } from "react-native-chart-kit/dist/AbstractChart"; import { AbstractChartConfig } from "react-native-chart-kit/dist/AbstractChart";
import { PADDING } from "./constants";
import useDark from "./use-dark";
import { useTheme } from "react-native-paper"; import { useTheme } from "react-native-paper";
interface ChartProps { interface ChartProps {
labels: string[]; labels: string[];
data: number[]; data: number[];
preserve?: number;
} }
export default function Chart({ labels, data, preserve = 3 }: ChartProps) { export default function Chart({ labels, data }: ChartProps) {
const { width } = useWindowDimensions(); const { width } = useWindowDimensions();
const { colors } = useTheme(); const { colors } = useTheme();
@ -23,19 +20,16 @@ export default function Chart({ labels, data, preserve = 3 }: ChartProps) {
}; };
const pruned = useMemo(() => { const pruned = useMemo(() => {
const newPruned = [...labels]; if (labels.length < 3) return labels;
if (labels.length <= preserve + 2) return labels; const newPruned = [labels[0]];
const centerIndex = Math.floor(labels.length / 2);
let interval = Math.floor((labels.length - 2) / (preserve + 1));
for (let i = 1; i < labels.length - 1; i++) { for (let i = 1; i < labels.length - 1; i++) {
if ((i - 1) % interval !== 0 || i === 1) { if (i === centerIndex) newPruned[i] = labels[i];
newPruned[i] = ""; else newPruned[i] = "";
}
} }
newPruned.push(labels[labels.length - 1]);
return newPruned; return newPruned;
}, [labels, preserve]); }, [labels]);
console.log({ labels, data, pruned, preserve });
return ( return (
<LineChart <LineChart

View File

@ -73,8 +73,6 @@ export default function ViewGraph() {
let periodFormat = "do"; let periodFormat = "do";
if (period === Periods.Weekly) periodFormat = "iii"; if (period === Periods.Weekly) periodFormat = "iii";
else if (period === Periods.Yearly) periodFormat = "P"; else if (period === Periods.Yearly) periodFormat = "P";
let preserve = 3;
if (period === Periods.Yearly) preserve = 1;
if (metric === Metrics.Volume && Number(volumes?.length) > 0) if (metric === Metrics.Volume && Number(volumes?.length) > 0)
return ( return (
@ -83,7 +81,6 @@ export default function ViewGraph() {
labels={volumes.map((volume) => labels={volumes.map((volume) =>
format(new Date(volume.created), periodFormat) format(new Date(volume.created), periodFormat)
)} )}
preserve={preserve}
/> />
); );
if ( if (
@ -96,7 +93,6 @@ export default function ViewGraph() {
labels={weights.map((set) => labels={weights.map((set) =>
format(new Date(set.created), periodFormat) format(new Date(set.created), periodFormat)
)} )}
preserve={preserve}
/> />
); );

View File

@ -39,21 +39,24 @@ export default function ViewWeightGraph() {
}, [period]); }, [period]);
const charts = useMemo(() => { const charts = useMemo(() => {
if (!weights) return;
if (weights?.length === 0) { if (weights?.length === 0) {
return <List.Item title="No data yet." />; return <List.Item title="No data yet." />;
} }
let periodFormat = "do";
if (period === Periods.Weekly) periodFormat = "iii";
else if (period === Periods.Yearly) periodFormat = "P";
return ( return (
<Chart <Chart
yData={weights?.map((set) => set.value) || []} data={weights.map((set) => set.value)}
yFormat={(value) => `${value}${weights?.[0].unit}`} labels={weights.map((weight) =>
xData={weights || []} format(new Date(weight.created), periodFormat)
xFormat={(_value, index) => )}
format(new Date(weights?.[index].created), "d/M")
}
/> />
); );
}, [weights]); }, [weights, period]);
return ( return (
<> <>

View File

@ -85,8 +85,8 @@ android {
applicationId "com.massive" applicationId "com.massive"
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 36190 versionCode 36191
versionName "1.164" versionName "1.165"
} }
signingConfigs { signingConfigs {
release { release {

View File

@ -2,6 +2,8 @@
set -ex set -ex
npx tsc
cd android || exit 1 cd android || exit 1
build=app/build.gradle build=app/build.gradle
@ -24,7 +26,6 @@ sed -i "s/\(^\s*\)versionName \"[0-9]*.[0-9]*\"$/\1versionName \"$major.$minor\"
sed -i "s/\"version\": \"[0-9]*.[0-9]*\"/\"version\": \"$major.$minor\"/" ../package.json sed -i "s/\"version\": \"[0-9]*.[0-9]*\"/\"version\": \"$major.$minor\"/" ../package.json
if [ "$1" != "-n" ]; then if [ "$1" != "-n" ]; then
npx tsc
./gradlew bundleRelease ./gradlew bundleRelease
bundle install bundle install
bundle exec fastlane supply --aab app/build/outputs/bundle/release/app-release.aab bundle exec fastlane supply --aab app/build/outputs/bundle/release/app-release.aab

View File

@ -1,6 +1,6 @@
{ {
"name": "massive", "name": "massive",
"version": "1.164", "version": "1.165",
"private": true, "private": true,
"license": "GPL-3.0-only", "license": "GPL-3.0-only",
"scripts": { "scripts": {