feat: store date in url when filtering in missing locations and potential albums

Signed-off-by: Varun Raj <mailme@varunraj.in>
This commit is contained in:
Varun Raj
2024-09-07 20:30:27 +05:30
parent 574f83615e
commit 9af0ba0cbe
4 changed files with 23 additions and 4 deletions
@@ -5,8 +5,10 @@ import {
import React, { use, useEffect, useState } from "react";
import PotentialDateItem from "./PotentialDateItem";
import { usePotentialAlbumContext } from "@/contexts/PotentialAlbumContext";
import { useRouter } from "next/router";
export default function PotentialAlbumsDates() {
const router = useRouter();
const { updateContext } = usePotentialAlbumContext();
const [dateRecords, setDateRecords] = React.useState<
IPotentialAlbumsDatesResponse[]
@@ -25,6 +27,11 @@ export default function PotentialAlbumsDates() {
const handleSelect = (date: string) => {
updateContext({ startDate: date });
router.push({
pathname: router.pathname,
query: { startDate: date },
})
};
useEffect(() => {
@@ -3,13 +3,14 @@ import { usePotentialAlbumContext } from "@/contexts/PotentialAlbumContext";
import { IMissingLocationDatesResponse, listMissingLocationDates } from "@/handlers/api/asset.handler";
import MissingLocationDateItem from "./MissingLocationDateItem";
import { useMissingLocationContext } from "@/contexts/MissingLocationContext";
import { useRouter } from "next/router";
export default function MissingLocationDates() {
const { updateContext } = useMissingLocationContext();
const router = useRouter();
const [dateRecords, setDateRecords] = React.useState<
IMissingLocationDatesResponse[]
>([]);
const [loading, setLoading] = useState(false);
const [errorMessage, setErrorMessage] = useState<string | null>(null);
@@ -23,6 +24,10 @@ export default function MissingLocationDates() {
const handleSelect = (date: string) => {
updateContext({ startDate: date });
router.push({
pathname: router.pathname,
query: { startDate: date },
});
};
useEffect(() => {
+6 -2
View File
@@ -13,14 +13,17 @@ import PotentialAlbumContext, {
} from "@/contexts/PotentialAlbumContext";
import { addAssetToAlbum, createAlbum } from "@/handlers/api/album.handler";
import { IAlbum, IAlbumCreate } from "@/types/album";
import { useRouter } from "next/router";
import React from "react";
export default function PotentialAlbums() {
const { toast } = useToast();
const { id } = useCurrentUser();
const { query } = useRouter();
const { startDate } = query as { startDate: string };
const [config, setConfig] = React.useState<IPotentialAlbumConfig>({
startDate: undefined,
startDate: startDate || undefined,
selectedIds: [],
assets: [],
});
@@ -62,6 +65,7 @@ export default function PotentialAlbums() {
}]
})
}
return (
<PageLayout className="!p-0 !mb-0">
<Header
@@ -71,7 +75,7 @@ export default function PotentialAlbums() {
<Badge variant={"outline"}>
{config.selectedIds.length} Selected
</Badge>
{config.selectedIds.length === config.assets.length ? (
{config.selectedIds.length && config.selectedIds.length === config.assets.length ? (
<Button
variant={"outline"}
onClick={() =>
+4 -1
View File
@@ -15,13 +15,16 @@ import MissingLocationContext, {
import { updateAssets } from "@/handlers/api/asset.handler";
import { IPlace } from "@/types/common";
import { useRouter } from "next/router";
import React from "react";
export default function MissingLocations() {
const { toast } = useToast();
const { query } = useRouter();
const { startDate } = query as { startDate: string };
const [config, setConfig] = React.useState<IMissingLocationConfig>({
startDate: undefined,
startDate: startDate || undefined,
selectedIds: [],
assets: [],
});