···11import styled from "@emotion/styled";
22import { Ellipsis } from "@styled-icons/fa-solid";
33import { ArrowReplyDown } from "@styled-icons/fluentui-system-filled";
44+import { Link as DefaultLink } from "@tanstack/react-router";
45import { ListItem } from "baseui/list";
56import { NestedMenus, StatefulMenu } from "baseui/menu";
67import { PLACEMENT, StatefulPopover } from "baseui/popover";
···910import dayjs from "dayjs";
1011import { useAtomValue } from "jotai";
1112import { useState } from "react";
1212-import { Link as DefaultLink } from "react-router";
1313import { profileAtom } from "../../../../atoms/profile";
1414import useLike from "../../../../hooks/useLike";
1515import useShout from "../../../../hooks/useShout";
···11-import { useParams } from "react-router";
11+import { useParams } from "@tanstack/react-router";
22import Dropbox from "./Dropbox";
3344function DropboxWithId() {
55- const { id } = useParams<{ id: string }>();
55+ const { id } = useParams({ strict: false });
66+ console.log(">> id", id);
67 return <Dropbox fileId={id} />;
78}
89
+1-1
apps/web/src/pages/dropbox/styles.tsx
···11import styled from "@emotion/styled";
22-import { Link } from "react-router";
22+import { Link } from "@tanstack/react-router";
3344export const Directory = styled(Link)`
55 color: var(--color-text) !important;
···11-import { useParams } from "react-router";
11+import { useParams } from "@tanstack/react-router";
22import GoogleDrive from "./GoogleDrive";
3344function GoogleDriveWithId() {
55- const { id } = useParams<{ id: string }>();
55+ const { id } = useParams({ strict: false });
66 return <GoogleDrive fileId={id} />;
77}
88
+1-1
apps/web/src/pages/googledrive/styles.tsx
···11import styled from "@emotion/styled";
22-import { Link } from "react-router";
22+import { Link } from "@tanstack/react-router";
3344export const Directory = styled(Link)`
55 color: var(--color-text) !important;
+8-2
apps/web/src/pages/home/feed/Feed.tsx
···11import styled from "@emotion/styled";
22+import { Link } from "@tanstack/react-router";
23import { BlockProps } from "baseui/block";
34import { FlexGrid, FlexGridItem } from "baseui/flex-grid";
45import { StatefulTooltip } from "baseui/tooltip";
···67import dayjs from "dayjs";
78import relativeTime from "dayjs/plugin/relativeTime";
89import ContentLoader from "react-content-loader";
99-import { Link } from "react-router";
1010import Handle from "../../../components/Handle";
1111import SongCover from "../../../components/SongCover";
1212import { useFeedQuery } from "../../../hooks/useFeed";
···7575 // eslint-disable-next-line @typescript-eslint/no-explicit-any
7676 data.map((song: any) => (
7777 <FlexGridItem {...itemProps} key={song.id}>
7878- <Link to={`/${song.uri?.split("at://")[1]}`}>
7878+ <Link
7979+ to="/$did/scrobble/$rkey"
8080+ params={{
8181+ did: song.uri?.split("at://")[1]?.split("/")[0] || "",
8282+ rkey: song.uri?.split("/").pop() || "",
8383+ }}
8484+ >
7985 <SongCover
8086 cover={song.cover}
8187 artist={song.artist}
···11import styled from "@emotion/styled";
22import { ChevronLeft, ChevronRight } from "@styled-icons/evaicons-solid";
33+import { Link as DefaultLink } from "@tanstack/react-router";
34import { Modal, ModalBody, ModalHeader, ROLE } from "baseui/modal";
45import { ProgressBar } from "baseui/progress-bar";
56import { StatefulTooltip } from "baseui/tooltip";
···78import relativeTime from "dayjs/plugin/relativeTime";
89import utc from "dayjs/plugin/utc";
910import { useEffect, useState } from "react";
1010-import { Link as DefaultLink } from "react-router";
1111import { useNowPlayingsQuery } from "../../../hooks/useNowPlaying";
1212import styles from "./styles";
1313