diff --git a/package.json b/package.json index 9cd89cb8f8..efdb0b5489 100644 --- a/package.json +++ b/package.json @@ -64,8 +64,8 @@ "@capacitor/status-bar": "^7.0.0", "@github/markdown-toolbar-element": "^2.2.3", "@ionic/core": "npm:voyager-ionic-core@8.4.3", - "@ionic/react": "8.4.3", - "@ionic/react-router": "8.4.3", + "@ionic/react": "8.4.4-dev.11740669619.1b5165be", + "@ionic/react-router": "8.4.4-dev.11740669619.1b5165be", "@mantine/hooks": "^7.17.0", "@reduxjs/toolkit": "^2.6.0", "capacitor-android-nav-mode": "^2.0.0", @@ -131,8 +131,8 @@ "@types/history": "^4.7.11", "@types/mdast": "^4.0.4", "@types/node": "^22.13.5", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", "@types/react-router": "^5.1.20", "@types/react-router-dom": "^5.3.3", "@types/ua-parser-js": "^0.7.39", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 13d4c4bf2c..b17e31544e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,17 +68,17 @@ importers: specifier: npm:voyager-ionic-core@8.4.3 version: voyager-ionic-core@8.4.3 '@ionic/react': - specifier: 8.4.3 - version: 8.4.3(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224) + specifier: 8.4.4-dev.11740669619.1b5165be + version: 8.4.4-dev.11740669619.1b5165be(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224) '@ionic/react-router': - specifier: 8.4.3 - version: 8.4.3(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react-router-dom@5.3.4(react@0.0.0-experimental-25677265-20250224))(react-router@5.3.4(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224) + specifier: 8.4.4-dev.11740669619.1b5165be + version: 8.4.4-dev.11740669619.1b5165be(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react-router-dom@5.3.4(react@0.0.0-experimental-25677265-20250224))(react-router@5.3.4(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224) '@mantine/hooks': specifier: ^7.17.0 version: 7.17.0(react@0.0.0-experimental-25677265-20250224) '@reduxjs/toolkit': specifier: ^2.6.0 - version: 2.6.0(react-redux@9.2.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224)(redux@5.0.1))(react@0.0.0-experimental-25677265-20250224) + version: 2.6.0(react-redux@9.2.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224)(redux@5.0.1))(react@0.0.0-experimental-25677265-20250224) capacitor-android-nav-mode: specifier: ^2.0.0 version: 2.0.0(@capacitor/core@7.0.1) @@ -186,10 +186,10 @@ importers: version: 9.15.1(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224) react-markdown: specifier: ^10.0.0 - version: 10.0.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224) + version: 10.0.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224) react-redux: specifier: ^9.2.0 - version: 9.2.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224)(redux@5.0.1) + version: 9.2.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224)(redux@5.0.1) react-reverse-portal: specifier: ^2.2.0 version: 2.2.0(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224) @@ -201,7 +201,7 @@ importers: version: 5.3.4(react@0.0.0-experimental-25677265-20250224) react-textarea-autosize: specifier: ^8.5.7 - version: 8.5.7(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224) + version: 8.5.7(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224) react-transition-state: specifier: ^2.3.0 version: 2.3.0(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224) @@ -264,11 +264,11 @@ importers: specifier: ^22.13.5 version: 22.13.5 '@types/react': - specifier: ^18.3.18 - version: 18.3.18 + specifier: ^19.0.10 + version: 19.0.10 '@types/react-dom': - specifier: ^18.3.5 - version: 18.3.5(@types/react@18.3.18) + specifier: ^19.0.4 + version: 19.0.4(@types/react@19.0.10) '@types/react-router': specifier: ^5.1.20 version: 5.1.20 @@ -1328,16 +1328,16 @@ packages: engines: {node: '>=16.0.0'} hasBin: true - '@ionic/react-router@8.4.3': - resolution: {integrity: sha512-eY73b99W/KTX9uNfnx9j7mfmSp3yHVfTFukvwvsNQKK6dIQpcpO3QtbVIzAA8Y4VgD6DIdG+bNh535vvYVTz4g==} + '@ionic/react-router@8.4.4-dev.11740669619.1b5165be': + resolution: {integrity: sha512-R5y9NKGnJpsuOtx6dZuQUs4HoMPbT7T6sKf5I4XU99i1tVjmS5Cg9G6mP3loG+khIfH2C4GSLPNotlA1dqt5tA==} peerDependencies: react: '>=16.8.6' react-dom: '>=16.8.6' react-router: ^5.0.1 react-router-dom: ^5.0.1 - '@ionic/react@8.4.3': - resolution: {integrity: sha512-AqwmoRCjTDBIgmywE6VnOOacOry21ma6TWMS8Dg8ZGu41rT6edDSmX/lKvAAV+jg4TkjE/U5n//OxzHBY/0+Zg==} + '@ionic/react@8.4.4-dev.11740669619.1b5165be': + resolution: {integrity: sha512-x4Doj7BYJ5QdE/iyJK35wKh/MvnRMXog4opsttiOJ14gCu9opA4yVppuFK7YAX8DIpzlHkCMCqSpM9lnU542wQ==} peerDependencies: react: '>=16.8.6' react-dom: '>=16.8.6' @@ -1943,13 +1943,10 @@ packages: '@types/prompts@2.4.9': resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - - '@types/react-dom@18.3.5': - resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + '@types/react-dom@19.0.4': + resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==} peerDependencies: - '@types/react': ^18.0.0 + '@types/react': ^19.0.0 '@types/react-router-dom@5.3.3': resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} @@ -1957,8 +1954,8 @@ packages: '@types/react-router@5.1.20': resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} - '@types/react@18.3.18': - resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + '@types/react@19.0.10': + resolution: {integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==} '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} @@ -7803,16 +7800,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@ionic/react-router@8.4.3(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react-router-dom@5.3.4(react@0.0.0-experimental-25677265-20250224))(react-router@5.3.4(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224)': + '@ionic/react-router@8.4.4-dev.11740669619.1b5165be(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react-router-dom@5.3.4(react@0.0.0-experimental-25677265-20250224))(react-router@5.3.4(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224)': dependencies: - '@ionic/react': 8.4.3(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224) + '@ionic/react': 8.4.4-dev.11740669619.1b5165be(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224) react: 0.0.0-experimental-25677265-20250224 react-dom: 0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224) react-router: 5.3.4(react@0.0.0-experimental-25677265-20250224) react-router-dom: 5.3.4(react@0.0.0-experimental-25677265-20250224) tslib: 2.8.1 - '@ionic/react@8.4.3(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224)': + '@ionic/react@8.4.4-dev.11740669619.1b5165be(react-dom@0.0.0-experimental-25677265-20250224(react@0.0.0-experimental-25677265-20250224))(react@0.0.0-experimental-25677265-20250224)': dependencies: '@ionic/core': voyager-ionic-core@8.4.3 ionicons: 7.4.0 @@ -8146,7 +8143,7 @@ snapshots: '@xml-tools/parser': 1.0.11 prettier: 3.5.2 - '@reduxjs/toolkit@2.6.0(react-redux@9.2.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224)(redux@5.0.1))(react@0.0.0-experimental-25677265-20250224)': + '@reduxjs/toolkit@2.6.0(react-redux@9.2.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224)(redux@5.0.1))(react@0.0.0-experimental-25677265-20250224)': dependencies: immer: 10.1.1 redux: 5.0.1 @@ -8154,7 +8151,7 @@ snapshots: reselect: 5.1.1 optionalDependencies: react: 0.0.0-experimental-25677265-20250224 - react-redux: 9.2.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224)(redux@5.0.1) + react-redux: 9.2.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224)(redux@5.0.1) '@rollup/plugin-babel@5.3.1(@babel/core@7.26.9)(@types/babel__core@7.20.5)(rollup@2.79.2)': dependencies: @@ -8516,26 +8513,23 @@ snapshots: '@types/node': 22.13.5 kleur: 3.0.3 - '@types/prop-types@15.7.14': {} - - '@types/react-dom@18.3.5(@types/react@18.3.18)': + '@types/react-dom@19.0.4(@types/react@19.0.10)': dependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.10 '@types/react-router-dom@5.3.3': dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.18 + '@types/react': 19.0.10 '@types/react-router': 5.1.20 '@types/react-router@5.1.20': dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.18 + '@types/react': 19.0.10 - '@types/react@18.3.18': + '@types/react@19.0.10': dependencies: - '@types/prop-types': 15.7.14 csstype: 3.1.3 '@types/resolve@1.20.2': {} @@ -12348,11 +12342,11 @@ snapshots: react-is@17.0.2: {} - react-markdown@10.0.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224): + react-markdown@10.0.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/react': 18.3.18 + '@types/react': 19.0.10 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.4 html-url-attributes: 3.0.1 @@ -12366,13 +12360,13 @@ snapshots: transitivePeerDependencies: - supports-color - react-redux@9.2.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224)(redux@5.0.1): + react-redux@9.2.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.6 react: 0.0.0-experimental-25677265-20250224 use-sync-external-store: 1.4.0(react@0.0.0-experimental-25677265-20250224) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.10 redux: 5.0.1 react-refresh@0.14.2: {} @@ -12406,12 +12400,12 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react-textarea-autosize@8.5.7(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224): + react-textarea-autosize@8.5.7(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224): dependencies: '@babel/runtime': 7.26.9 react: 0.0.0-experimental-25677265-20250224 - use-composed-ref: 1.4.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224) - use-latest: 1.3.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224) + use-composed-ref: 1.4.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224) + use-latest: 1.3.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224) transitivePeerDependencies: - '@types/react' @@ -13476,24 +13470,24 @@ snapshots: url-join@5.0.0: {} - use-composed-ref@1.4.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224): + use-composed-ref@1.4.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224): dependencies: react: 0.0.0-experimental-25677265-20250224 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.10 - use-isomorphic-layout-effect@1.2.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224): + use-isomorphic-layout-effect@1.2.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224): dependencies: react: 0.0.0-experimental-25677265-20250224 optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.10 - use-latest@1.3.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224): + use-latest@1.3.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224): dependencies: react: 0.0.0-experimental-25677265-20250224 - use-isomorphic-layout-effect: 1.2.0(@types/react@18.3.18)(react@0.0.0-experimental-25677265-20250224) + use-isomorphic-layout-effect: 1.2.0(@types/react@19.0.10)(react@0.0.0-experimental-25677265-20250224) optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 19.0.10 use-long-press@3.2.0(react@0.0.0-experimental-25677265-20250224): dependencies: diff --git a/src/core/GlobalStyles.tsx b/src/core/GlobalStyles.tsx index ef2ced3632..48f9cb1ee7 100644 --- a/src/core/GlobalStyles.tsx +++ b/src/core/GlobalStyles.tsx @@ -119,7 +119,7 @@ export default function GlobalStyles({ children }: React.PropsWithChildren) { Keyboard.setStyle({ style: keyboardStyle }); }, [isDark, usingSystemDarkMode]); - return {children}; + return {children}; } function useComputeIsDark(): boolean { diff --git a/src/core/TabContext.tsx b/src/core/TabContext.tsx index 64130b2a32..6b02ba86f1 100644 --- a/src/core/TabContext.tsx +++ b/src/core/TabContext.tsx @@ -42,7 +42,5 @@ function TabContextProviderInternals({ tabRef.current = tab; }, [tab]); - return ( - {children} - ); + return {children}; } diff --git a/src/core/listeners/AppUrlListener.tsx b/src/core/listeners/AppUrlListener.tsx index 0f4e61259f..8429ea27a8 100644 --- a/src/core/listeners/AppUrlListener.tsx +++ b/src/core/listeners/AppUrlListener.tsx @@ -31,7 +31,7 @@ export default function AppUrlListener() { ); const deepLinkReady = useAppSelector((state) => state.deepLinkReady.ready); - const appUrlFromEventRef = useRef(); + const appUrlFromEventRef = useRef(undefined); const notReady = !knownInstances || diff --git a/src/features/auth/AppContext.tsx b/src/features/auth/AppContext.tsx index 6e41b458fd..f97783ffbb 100644 --- a/src/features/auth/AppContext.tsx +++ b/src/features/auth/AppContext.tsx @@ -9,7 +9,7 @@ import React, { } from "react"; import { VListHandle } from "virtua"; -export type Page = RefObject; +export type Page = RefObject; interface IAppContext { // used for determining whether page needs to be scrolled up first @@ -23,17 +23,17 @@ export const AppContext = createContext({ }); export function AppContextProvider({ children }: React.PropsWithChildren) { - const activePageRef = useRef(); + const activePageRef = useRef(undefined); return ( - (activePageRef.current = page), }} > {children} - + ); } diff --git a/src/features/auth/PageContext.tsx b/src/features/auth/PageContext.tsx index b0571e0e0a..c3264af3a1 100644 --- a/src/features/auth/PageContext.tsx +++ b/src/features/auth/PageContext.tsx @@ -47,7 +47,7 @@ export interface BanUserPayload { interface IPageContext { // used for ion presentingElement - pageRef: RefObject | undefined; + pageRef: RefObject | undefined; /** * @returns true if login dialog was presented @@ -124,7 +124,7 @@ interface PageContextProvider extends React.PropsWithChildren { export function PageContextProvider({ value, children }: PageContextProvider) { const dispatch = useAppDispatch(); const jwt = useAppSelector(jwtSelector); - const reportRef = useRef(null); + const reportRef = useRef(undefined); const shareAsImageDataRef = useRef(null); const [presentShareAsImageModal, onDismissShareAsImageModal] = useIonModal( @@ -304,7 +304,7 @@ export function PageContextProvider({ value, children }: PageContextProvider) { }; return ( - - + ); } diff --git a/src/features/auth/login/join/Captcha.tsx b/src/features/auth/login/join/Captcha.tsx index 9b18e37c05..325d9726cb 100644 --- a/src/features/auth/login/join/Captcha.tsx +++ b/src/features/auth/login/join/Captcha.tsx @@ -21,7 +21,7 @@ export interface CaptchaHandle { interface CaptchaProps { url: string; - ref: React.RefObject; + ref: React.RefObject; } export default function Captcha({ url, ref }: CaptchaProps) { diff --git a/src/features/auth/login/join/Join.tsx b/src/features/auth/login/join/Join.tsx index 4a5bcd77ec..844fb23ce6 100644 --- a/src/features/auth/login/join/Join.tsx +++ b/src/features/auth/login/join/Join.tsx @@ -49,7 +49,7 @@ export default function Join({ answer }: JoinProps) { const [email, setEmail] = useState(""); const [honeypot, setHoneypot] = useState(""); - const captchaRef = useRef(null); + const captchaRef = useRef(undefined); useEffect(() => { setTimeout(() => { diff --git a/src/features/comment/Comment.tsx b/src/features/comment/Comment.tsx index b0d19eec50..ea65853bfd 100644 --- a/src/features/comment/Comment.tsx +++ b/src/features/comment/Comment.tsx @@ -67,7 +67,7 @@ export default function Comment({ const canModerate = useCanModerate(commentView.community); - const commentEllipsisHandleRef = useRef(null); + const commentEllipsisHandleRef = useRef(undefined); const stub = isStubComment(comment, canModerate); diff --git a/src/features/comment/CommentEllipsis.tsx b/src/features/comment/CommentEllipsis.tsx index 2e67f021ff..ff2d6360a7 100644 --- a/src/features/comment/CommentEllipsis.tsx +++ b/src/features/comment/CommentEllipsis.tsx @@ -14,7 +14,7 @@ export type CommentEllipsisHandle = Pick< >; interface CommentEllipsisProps extends CommentActionsProps { - ref: React.RefObject; + ref: React.RefObject; } export default function CommentEllipsis({ diff --git a/src/features/comment/CommentHeader.tsx b/src/features/comment/CommentHeader.tsx index bafbba0d69..6bbafa614a 100644 --- a/src/features/comment/CommentHeader.tsx +++ b/src/features/comment/CommentHeader.tsx @@ -28,7 +28,7 @@ interface CommentHeaderProps { context: React.ReactNode; collapsed: boolean | undefined; rootIndex: number | undefined; - commentEllipsisHandleRef: RefObject; + commentEllipsisHandleRef: RefObject; } export default function CommentHeader({ diff --git a/src/features/comment/inTree/Comments.tsx b/src/features/comment/inTree/Comments.tsx index 2fff55f768..065515838b 100644 --- a/src/features/comment/inTree/Comments.tsx +++ b/src/features/comment/inTree/Comments.tsx @@ -53,7 +53,7 @@ interface CommentsProps { sort: CommentSortType; bottomPadding?: number; - ref: React.RefObject; + ref: React.RefObject; } export default function Comments({ @@ -469,7 +469,7 @@ export default function Comments({ }); return ( - + {...content} )} - + ); } diff --git a/src/features/community/list/AlphabetJump.tsx b/src/features/community/list/AlphabetJump.tsx index 2bd807c828..6ecb3f3de0 100644 --- a/src/features/community/list/AlphabetJump.tsx +++ b/src/features/community/list/AlphabetJump.tsx @@ -67,7 +67,7 @@ function mapSeparatorsToJumpSections( } interface AlphabetJumpProps { - virtuaRef: RefObject; + virtuaRef: RefObject; separators: { label: string; index: number }[]; } @@ -75,8 +75,8 @@ export default function AlphabetJump({ virtuaRef, separators, }: AlphabetJumpProps) { - const containerElTopRef = useRef(); - const scrollViewRef = useRef(); + const containerElTopRef = useRef(undefined); + const scrollViewRef = useRef(undefined); const jumpTableLookup = useMemo( () => diff --git a/src/features/community/list/ResolvedCommunitiesList.tsx b/src/features/community/list/ResolvedCommunitiesList.tsx index 18cb02cd76..b6b6410444 100644 --- a/src/features/community/list/ResolvedCommunitiesList.tsx +++ b/src/features/community/list/ResolvedCommunitiesList.tsx @@ -188,7 +188,7 @@ function ResolvedCommunitiesList({ }, [updateActiveIndex]); return ( - +
- + ); } diff --git a/src/features/community/titleSearch/TitleSearch.tsx b/src/features/community/titleSearch/TitleSearch.tsx index beead41d76..c868ef2bef 100644 --- a/src/features/community/titleSearch/TitleSearch.tsx +++ b/src/features/community/titleSearch/TitleSearch.tsx @@ -23,7 +23,7 @@ export function openTitleSearch() { interface TitleSearchProps extends React.PropsWithChildren { name: string; - ref?: React.RefObject; + ref?: React.RefObject; } export default function TitleSearch({ name, children, ref }: TitleSearchProps) { diff --git a/src/features/community/titleSearch/TitleSearchProvider.tsx b/src/features/community/titleSearch/TitleSearchProvider.tsx index 9bd66dd95f..cd494e5523 100644 --- a/src/features/community/titleSearch/TitleSearchProvider.tsx +++ b/src/features/community/titleSearch/TitleSearchProvider.tsx @@ -28,7 +28,7 @@ export function TitleSearchProvider({ children }: React.PropsWithChildren) { } return ( - {children} - + ); } diff --git a/src/features/feed/Feed.tsx b/src/features/feed/Feed.tsx index 8c6f852ee2..85ca119279 100644 --- a/src/features/feed/Feed.tsx +++ b/src/features/feed/Feed.tsx @@ -143,7 +143,7 @@ export default function Feed({ atEndRef.current = atEnd; } - const abortControllerRef = useRef(); + const abortControllerRef = useRef(undefined); const fetchMore = useCallback( async (refresh = false) => { @@ -351,7 +351,7 @@ export default function Feed({ - + ({ ))} {footer} - + ); } diff --git a/src/features/feed/FeedContext.tsx b/src/features/feed/FeedContext.tsx index 948c595dc7..6f3552c700 100644 --- a/src/features/feed/FeedContext.tsx +++ b/src/features/feed/FeedContext.tsx @@ -21,16 +21,16 @@ export const FeedContext = createContext({ export default function FeedContextProvider({ children, }: React.PropsWithChildren) { - const itemsRef = useRef(); + const itemsRef = useRef(undefined); return ( - (itemsRef.current = ref), itemsRefRef: itemsRef, }} > {children} - + ); } diff --git a/src/features/feed/PostCommentFeed.tsx b/src/features/feed/PostCommentFeed.tsx index d67b3ba752..61554b3c8e 100644 --- a/src/features/feed/PostCommentFeed.tsx +++ b/src/features/feed/PostCommentFeed.tsx @@ -73,7 +73,7 @@ export default function PostCommentFeed({ ); const autohidePostIfNeeded = useAutohidePostIfNeeded(); - const itemsRef = useRef(); + const itemsRef = useRef(undefined); const { setItemsRef } = useContext(FeedContext); diff --git a/src/features/feed/useRangeChange.ts b/src/features/feed/useRangeChange.ts index 20dfadd6bf..9e98dcec7d 100644 --- a/src/features/feed/useRangeChange.ts +++ b/src/features/feed/useRangeChange.ts @@ -3,7 +3,7 @@ import { useRef } from "react"; import { VListHandle } from "virtua"; export function useRangeChange( - virtuaHandleRef: React.RefObject, + virtuaHandleRef: React.RefObject, onRangeChange: (startIndex: number, endIndex: number) => void, ) { const startIndexRef = useRef(-1); diff --git a/src/features/inbox/InboxItem.tsx b/src/features/inbox/InboxItem.tsx index 53ef2c06ef..bad59e37d4 100644 --- a/src/features/inbox/InboxItem.tsx +++ b/src/features/inbox/InboxItem.tsx @@ -168,7 +168,7 @@ export default function InboxItem({ item }: InboxItemProps) { const read = !!readByInboxItemId[getInboxItemId(item)]; - const ellipsisHandleRef = useRef(null); + const ellipsisHandleRef = useRef(undefined); const onCommentLongPress = useCallback(() => { ellipsisHandleRef.current?.present(); diff --git a/src/features/inbox/InboxItemMoreActions.tsx b/src/features/inbox/InboxItemMoreActions.tsx index 115deba36f..2082238f7d 100644 --- a/src/features/inbox/InboxItemMoreActions.tsx +++ b/src/features/inbox/InboxItemMoreActions.tsx @@ -12,7 +12,7 @@ import styles from "./InboxItemMoreActions.module.css"; interface InboxItemMoreActionsProps { item: InboxItemView; - ref: React.RefObject; + ref: React.RefObject; } export interface InboxItemMoreActionsHandle { diff --git a/src/features/inbox/PrivateMessageMoreActions.tsx b/src/features/inbox/PrivateMessageMoreActions.tsx index ffc15c7a25..3b29ec4581 100644 --- a/src/features/inbox/PrivateMessageMoreActions.tsx +++ b/src/features/inbox/PrivateMessageMoreActions.tsx @@ -27,7 +27,7 @@ interface PrivateMessageMoreActionsProps { item: PrivateMessageView; markReadAction: ActionSheetButton; - ref: React.RefObject; + ref: React.RefObject; } export default function PrivateMessageMoreActions({ diff --git a/src/features/media/Media.tsx b/src/features/media/Media.tsx index 2613226bb3..ba2c2d7e8c 100644 --- a/src/features/media/Media.tsx +++ b/src/features/media/Media.tsx @@ -9,7 +9,7 @@ export interface MediaProps extends Omit { src: string; - ref?: React.RefObject< + ref?: React.Ref< ComponentRef | ComponentRef >; } diff --git a/src/features/media/gallery/GalleryGif.tsx b/src/features/media/gallery/GalleryGif.tsx index 54ffb9ec9b..6115a48caa 100644 --- a/src/features/media/gallery/GalleryGif.tsx +++ b/src/features/media/gallery/GalleryGif.tsx @@ -12,8 +12,8 @@ export default function GalleryGif({ ref, ...props }: GalleryGifProps) { - const canvasRef = useRef(null); - const syntheticImgRef = useRef(); + const canvasRef = useRef(undefined); + const syntheticImgRef = useRef(undefined); const loaded = useRef(false); diff --git a/src/features/media/gallery/GalleryProvider.tsx b/src/features/media/gallery/GalleryProvider.tsx index 891220e9de..1c61295617 100644 --- a/src/features/media/gallery/GalleryProvider.tsx +++ b/src/features/media/gallery/GalleryProvider.tsx @@ -56,7 +56,7 @@ export default function GalleryProvider({ children }: React.PropsWithChildren) { const [actionContainer, setActionContainer] = useState( null, ); - const thumbElRef = useRef(); + const thumbElRef = useRef(undefined); const imgSrcRef = useRef(""); const [post, setPost] = useState(); const lightboxRef = useRef(null); @@ -397,7 +397,7 @@ export default function GalleryProvider({ children }: React.PropsWithChildren) { const value = useMemo(() => ({ open, close }), [close, open]); return ( - + {actionContainer !== null && createPortal( post ? ( @@ -418,7 +418,7 @@ export default function GalleryProvider({ children }: React.PropsWithChildren) { )} {children} - + ); } diff --git a/src/features/media/gallery/actions/GalleryPostActions.tsx b/src/features/media/gallery/actions/GalleryPostActions.tsx index 9fe320b268..27f34cf79c 100644 --- a/src/features/media/gallery/actions/GalleryPostActions.tsx +++ b/src/features/media/gallery/actions/GalleryPostActions.tsx @@ -91,9 +91,9 @@ export default function GalleryPostActions({ {isNative() ? ( ) : ( - + - + )}
diff --git a/src/features/media/useMediaLoadObserver.ts b/src/features/media/useMediaLoadObserver.ts index a0c351c566..b241cacd13 100644 --- a/src/features/media/useMediaLoadObserver.ts +++ b/src/features/media/useMediaLoadObserver.ts @@ -10,7 +10,7 @@ export default function useMediaLoadObserver(src: string | undefined) { const dispatch = useAppDispatch(); const aspectRatio = useAspectRatio(src); const mediaRef = useRef>(null); - const resizeObserverRef = useRef(); + const resizeObserverRef = useRef(undefined); useEffect(() => { let destroyed = false; diff --git a/src/features/media/video/Player.tsx b/src/features/media/video/Player.tsx index 3e2b134cbf..091e047435 100644 --- a/src/features/media/video/Player.tsx +++ b/src/features/media/video/Player.tsx @@ -44,7 +44,7 @@ export default function Player({ ref, ...rest }: PlayerProps) { - const videoRef = useRef(); + const videoRef = useRef(undefined); const [muted, setMuted] = useState(true); const [playing, setPlaying] = useState(false); diff --git a/src/features/media/video/VideoPortalProvider.tsx b/src/features/media/video/VideoPortalProvider.tsx index c2116080b7..cdb3cf194d 100644 --- a/src/features/media/video/VideoPortalProvider.tsx +++ b/src/features/media/video/VideoPortalProvider.tsx @@ -69,7 +69,7 @@ export default function VideoPortalProvider({ } return ( - ))} - + ); } diff --git a/src/features/moderation/ModeratableItem.tsx b/src/features/moderation/ModeratableItem.tsx index 31fe3a03b0..ba271c52d4 100644 --- a/src/features/moderation/ModeratableItem.tsx +++ b/src/features/moderation/ModeratableItem.tsx @@ -83,11 +83,11 @@ export default function ModeratableItem({ ); return ( - + {children} - + ); } diff --git a/src/features/moderation/logs/ModlogItem.tsx b/src/features/moderation/logs/ModlogItem.tsx index adc7a3943d..f6aa88478e 100644 --- a/src/features/moderation/logs/ModlogItem.tsx +++ b/src/features/moderation/logs/ModlogItem.tsx @@ -123,7 +123,7 @@ export function ModlogItem({ item }: ModLogItemProps) { return role_ ?? "mod"; })(); - const ellipsisHandleRef = useRef(null); + const ellipsisHandleRef = useRef(undefined); const onCommentLongPress = useCallback(() => { ellipsisHandleRef.current?.present(); diff --git a/src/features/moderation/logs/ModlogItemMoreActions.tsx b/src/features/moderation/logs/ModlogItemMoreActions.tsx index fe56bef764..26eb950a8e 100644 --- a/src/features/moderation/logs/ModlogItemMoreActions.tsx +++ b/src/features/moderation/logs/ModlogItemMoreActions.tsx @@ -18,7 +18,7 @@ import styles from "./ModlogItemMoreActions.module.css"; interface ModlogItemMoreActions { item: ModlogItemType; role: ModeratorRole; - ref: React.RefObject; + ref: React.RefObject; } export interface ModlogItemMoreActionsHandle { diff --git a/src/features/post/appearance/PostAppearanceProvider.tsx b/src/features/post/appearance/PostAppearanceProvider.tsx index 72ae0ab5c0..f1b01e04d4 100644 --- a/src/features/post/appearance/PostAppearanceProvider.tsx +++ b/src/features/post/appearance/PostAppearanceProvider.tsx @@ -84,11 +84,9 @@ export default function PostAppearanceProvider({ } return ( - + {children} - + ); } diff --git a/src/features/post/detail/PostDetail.tsx b/src/features/post/detail/PostDetail.tsx index e77cf08cd3..f2142368fe 100644 --- a/src/features/post/detail/PostDetail.tsx +++ b/src/features/post/detail/PostDetail.tsx @@ -29,7 +29,7 @@ export default function PostDetail({ (state) => state.settings.general.comments, ); const [ionViewEntered, setIonViewEntered] = useState(false); - const commentsRef = useRef(null); + const commentsRef = useRef(undefined); const [viewAllCommentsSpace, setViewAllCommentsSpace] = useState(0); diff --git a/src/features/pwa/BeforeInstallPromptProvider.tsx b/src/features/pwa/BeforeInstallPromptProvider.tsx index 8940112210..17939cff69 100644 --- a/src/features/pwa/BeforeInstallPromptProvider.tsx +++ b/src/features/pwa/BeforeInstallPromptProvider.tsx @@ -48,11 +48,11 @@ export default function BeforeInstallPromptProvider({ } return ( - {children} - + ); } diff --git a/src/features/report/Report.tsx b/src/features/report/Report.tsx index f702d91312..4a5705d270 100644 --- a/src/features/report/Report.tsx +++ b/src/features/report/Report.tsx @@ -17,7 +17,7 @@ export interface ReportHandle { export default function Report({ ref, }: { - ref: React.RefObject; + ref: React.RefObject; }) { const presentToast = useAppToast(); const [item, setItem] = useState(); diff --git a/src/features/search/AutoResolvePostComment.tsx b/src/features/search/AutoResolvePostComment.tsx index 91721651ac..306d6acb90 100644 --- a/src/features/search/AutoResolvePostComment.tsx +++ b/src/features/search/AutoResolvePostComment.tsx @@ -43,16 +43,16 @@ export default function AutoResolvePostComment({ if (object.post) return ( - + - + ); if (object.comment) return ( - + - + ); return null; diff --git a/src/features/share/asImage/ShareAsImage.tsx b/src/features/share/asImage/ShareAsImage.tsx index 5ee3989bff..61501be76a 100644 --- a/src/features/share/asImage/ShareAsImage.tsx +++ b/src/features/share/asImage/ShareAsImage.tsx @@ -302,7 +302,7 @@ export default function ShareAsImage({ data, header }: ShareAsImageProps) { {createPortal(
- {includePostDetails && ( @@ -327,7 +327,7 @@ export default function ShareAsImage({ data, header }: ShareAsImageProps) { /> )} - + {watermark && }
, shareAsImageRenderRoot, diff --git a/src/features/shared/AppTitle.tsx b/src/features/shared/AppTitle.tsx index cf50cb9b46..d0d73b9fec 100644 --- a/src/features/shared/AppTitle.tsx +++ b/src/features/shared/AppTitle.tsx @@ -21,7 +21,7 @@ interface AppTitleProps extends ComponentProps { */ fullPadding?: number; - appRef?: React.RefObject; + appRef?: React.RefObject; } export default isIosTheme() ? IosAppTitle : IonTitle; diff --git a/src/features/shared/DynamicDismissableModal.tsx b/src/features/shared/DynamicDismissableModal.tsx index 8932875ddb..57a669f48b 100644 --- a/src/features/shared/DynamicDismissableModal.tsx +++ b/src/features/shared/DynamicDismissableModal.tsx @@ -175,11 +175,9 @@ export function DynamicDismissableModal({ } }} > - + {content} - + ); diff --git a/src/features/shared/ListEditor.tsx b/src/features/shared/ListEditor.tsx index 0905bbcf47..6d8c023f93 100644 --- a/src/features/shared/ListEditor.tsx +++ b/src/features/shared/ListEditor.tsx @@ -11,9 +11,9 @@ export function ListEditorProvider({ children }: React.PropsWithChildren) { const [editing, setEditing] = useState(false); return ( - + {children} - + ); } diff --git a/src/features/shared/markdown/components/Table.tsx b/src/features/shared/markdown/components/Table.tsx index a063423452..7f9e93f479 100644 --- a/src/features/shared/markdown/components/Table.tsx +++ b/src/features/shared/markdown/components/Table.tsx @@ -1,10 +1,10 @@ -import { useRef } from "react"; +import React, { useRef } from "react"; import { ExtraProps } from "react-markdown"; import styles from "./Table.module.css"; export default function Table( - props: JSX.IntrinsicElements["table"] & ExtraProps, + props: React.JSX.IntrinsicElements["table"] & ExtraProps, ) { const tableContainerRef = useRef(null); diff --git a/src/features/shared/markdown/components/spoiler/Details.tsx b/src/features/shared/markdown/components/spoiler/Details.tsx index 9ebd3877af..39ce8d1ace 100644 --- a/src/features/shared/markdown/components/spoiler/Details.tsx +++ b/src/features/shared/markdown/components/spoiler/Details.tsx @@ -1,6 +1,6 @@ import { IonAccordion, IonAccordionGroup, IonItem } from "@ionic/react"; import { noop } from "es-toolkit"; -import { +import React, { ComponentProps, createContext, useLayoutEffect, @@ -15,7 +15,7 @@ import { getSpoilerId, updateSpoilerState } from "./spoilerSlice"; import styles from "./Details.module.css"; -type DetailsProps = JSX.IntrinsicElements["details"] & +type DetailsProps = React.JSX.IntrinsicElements["details"] & ExtraProps & { id: string; }; @@ -46,7 +46,7 @@ export default function Details({ children, node, id }: DetailsProps) { }; return ( - + - + ); } diff --git a/src/features/shared/markdown/components/spoiler/Summary.tsx b/src/features/shared/markdown/components/spoiler/Summary.tsx index e53cd69a8e..94c6d2e1b8 100644 --- a/src/features/shared/markdown/components/spoiler/Summary.tsx +++ b/src/features/shared/markdown/components/spoiler/Summary.tsx @@ -1,11 +1,11 @@ -import { useContext, useLayoutEffect } from "react"; +import React, { useContext, useLayoutEffect } from "react"; import { ExtraProps } from "react-markdown"; import { SpoilerContext } from "./Details"; export default function Summary({ children, -}: JSX.IntrinsicElements["summary"] & ExtraProps) { +}: React.JSX.IntrinsicElements["summary"] & ExtraProps) { const { setLabel } = useContext(SpoilerContext); useLayoutEffect(() => { diff --git a/src/features/shared/markdown/editing/Editor.tsx b/src/features/shared/markdown/editing/Editor.tsx index 619e299f45..75691a6197 100644 --- a/src/features/shared/markdown/editing/Editor.tsx +++ b/src/features/shared/markdown/editing/Editor.tsx @@ -34,7 +34,7 @@ export interface EditorProps { children?: React.ReactNode; - ref?: React.RefObject; + ref?: React.RefObject; } export default function Editor({ @@ -47,7 +47,7 @@ export default function Editor({ ref, }: EditorProps) { const keyboardOpen = useKeyboardOpen(); - const textareaRef = useRef(null); + const textareaRef = useRef(undefined); const { insertBlock } = useEditorHelpers(textareaRef); diff --git a/src/features/shared/markdown/editing/modal/contents/CommentEditorContent.tsx b/src/features/shared/markdown/editing/modal/contents/CommentEditorContent.tsx index bad6a65322..8ba7b308a6 100644 --- a/src/features/shared/markdown/editing/modal/contents/CommentEditorContent.tsx +++ b/src/features/shared/markdown/editing/modal/contents/CommentEditorContent.tsx @@ -4,7 +4,7 @@ import Editor, { EditorProps } from "../../Editor"; import { MarkdownEditorIonContent } from "../../MarkdownToolbar"; interface CommentEditorContentProps extends EditorProps { - ref?: React.RefObject; + ref?: React.RefObject; } export default function CommentEditorContent(props: CommentEditorContentProps) { diff --git a/src/features/shared/markdown/editing/modal/contents/CommentReplyPage.tsx b/src/features/shared/markdown/editing/modal/contents/CommentReplyPage.tsx index 422609f0f5..5ddff069f8 100644 --- a/src/features/shared/markdown/editing/modal/contents/CommentReplyPage.tsx +++ b/src/features/shared/markdown/editing/modal/contents/CommentReplyPage.tsx @@ -58,7 +58,7 @@ export default function CommentReplyPage(props: CommentReplyPageProps) { const comment = "comment" in props.item ? props.item.comment : undefined; - const resolvedRef = useRef(); + const resolvedRef = useRef(undefined); const accounts = useAppSelector(loggedInAccountsSelector); const userHandle = useAppSelector(userHandleSelector); diff --git a/src/features/shared/markdown/editing/modal/contents/TemporarySelectedAccountContext.tsx b/src/features/shared/markdown/editing/modal/contents/TemporarySelectedAccountContext.tsx index 6c95a3f62b..55d4201617 100644 --- a/src/features/shared/markdown/editing/modal/contents/TemporarySelectedAccountContext.tsx +++ b/src/features/shared/markdown/editing/modal/contents/TemporarySelectedAccountContext.tsx @@ -68,7 +68,7 @@ export function TemporarySelectedAccountProvider({ ); return ( - {children} - + ); } diff --git a/src/features/shared/markdown/editing/modes/DefaultMode.tsx b/src/features/shared/markdown/editing/modes/DefaultMode.tsx index 4d5e9dc9e1..2a3a86ffc6 100644 --- a/src/features/shared/markdown/editing/modes/DefaultMode.tsx +++ b/src/features/shared/markdown/editing/modes/DefaultMode.tsx @@ -42,7 +42,7 @@ import styles from "./DefaultMode.module.css"; export interface SharedModeProps { type: "comment" | "post"; text: string; - textareaRef: RefObject; + textareaRef: RefObject; } interface DefaultModeProps extends SharedModeProps { diff --git a/src/features/shared/markdown/editing/useEditorHelpers.tsx b/src/features/shared/markdown/editing/useEditorHelpers.tsx index b4637385c5..9e6cb4bf51 100644 --- a/src/features/shared/markdown/editing/useEditorHelpers.tsx +++ b/src/features/shared/markdown/editing/useEditorHelpers.tsx @@ -3,7 +3,7 @@ import { RefObject, useCallback, useEffect, useMemo, useRef } from "react"; import { getSelectionHtml } from "#/helpers/dom"; export default function useEditorHelpers( - textareaRef: RefObject, + textareaRef: RefObject, ) { const selectionLocation = useRef(0); const selectionLocationEnd = useRef(0); diff --git a/src/features/shared/sliding/SlidingItem.tsx b/src/features/shared/sliding/SlidingItem.tsx index a094d000f0..1c7c0c7dba 100644 --- a/src/features/shared/sliding/SlidingItem.tsx +++ b/src/features/shared/sliding/SlidingItem.tsx @@ -70,7 +70,7 @@ export default function SlidingItem({ className, children, }: SlidingItemProps) { - const dragRef = useRef(); + const dragRef = useRef(undefined); const [activeItemIndex, setActiveItemIndex] = useState<0 | 1 | 2 | -1 | -2>( 0, ); diff --git a/src/features/shared/toast/Toast.tsx b/src/features/shared/toast/Toast.tsx index 6db7faf987..769e277181 100644 --- a/src/features/shared/toast/Toast.tsx +++ b/src/features/shared/toast/Toast.tsx @@ -21,7 +21,7 @@ export interface ToastHandler { } interface ToastProps extends React.PropsWithChildren { - ref: React.RefObject; + ref: React.RefObject; onClose?: () => void; } diff --git a/src/helpers/useAppToast.tsx b/src/helpers/useAppToast.tsx index e0b40b8104..c6db1ab10e 100644 --- a/src/helpers/useAppToast.tsx +++ b/src/helpers/useAppToast.tsx @@ -26,9 +26,9 @@ export default function useAppToast() { export function AppToastProvider({ children }: React.PropsWithChildren) { const vibrate = useHapticFeedback(); - const toastRef = useRef(null); + const toastRef = useRef(undefined); const openRef = useRef(false); - const queuedOptionsRef = useRef(); + const queuedOptionsRef = useRef(undefined); async function present(options: AppToastOptions) { if (openRef.current) { @@ -86,10 +86,10 @@ export function AppToastProvider({ children }: React.PropsWithChildren) { } return ( - + {children} - + ); } diff --git a/src/helpers/useOptimizedIonRouter.tsx b/src/helpers/useOptimizedIonRouter.tsx index 3613a083f2..b041811df1 100644 --- a/src/helpers/useOptimizedIonRouter.tsx +++ b/src/helpers/useOptimizedIonRouter.tsx @@ -40,7 +40,7 @@ export function useOptimizedIonRouter() { export function OptimizedRouterProvider({ children }: React.PropsWithChildren) { const router = useIonRouter(); - const routerRef = useRef(); + const routerRef = useRef(undefined); useEffect(() => { routerRef.current = router; @@ -49,8 +49,6 @@ export function OptimizedRouterProvider({ children }: React.PropsWithChildren) { const value = useMemo(() => ({ routerRef }), []); return ( - - {children} - + {children} ); } diff --git a/src/helpers/usePreservePositionFromBottomInScrollView.ts b/src/helpers/usePreservePositionFromBottomInScrollView.ts index defa463b35..6305dc0619 100644 --- a/src/helpers/usePreservePositionFromBottomInScrollView.ts +++ b/src/helpers/usePreservePositionFromBottomInScrollView.ts @@ -20,8 +20,8 @@ export default function usePreservePositionFromBottomInScrollView( elRef: MutableRefObject, enabled: boolean, ) { - const saveTopOffsetRef = useRef(); - const resizeObserverRef = useRef(); + const saveTopOffsetRef = useRef(undefined); + const resizeObserverRef = useRef(undefined); const enabledRef = useRef(enabled); diff --git a/src/routes/TabbedRoutes.tsx b/src/routes/TabbedRoutes.tsx index 701faa81e3..090f1672fb 100644 --- a/src/routes/TabbedRoutes.tsx +++ b/src/routes/TabbedRoutes.tsx @@ -62,7 +62,7 @@ export default function TabbedRoutes({ children }: React.PropsWithChildren) { function InnerTabbedRoutes({ ref: pageRef, }: { - ref: React.RefObject; + ref: React.RefObject; }) { const defaultFeed = useAppSelector( (state) => state.settings.general.defaultFeed, diff --git a/src/routes/common/Route.tsx b/src/routes/common/Route.tsx index 19b2faeb33..87dbf6a51c 100644 --- a/src/routes/common/Route.tsx +++ b/src/routes/common/Route.tsx @@ -20,9 +20,9 @@ export default function Route({ children, ...props }: AppRouteProps) { })(); return ( - + {content} - + ); } diff --git a/src/routes/pages/settings/update/UpdateContext.tsx b/src/routes/pages/settings/update/UpdateContext.tsx index e01b5cbd0f..e2dcb74fb6 100644 --- a/src/routes/pages/settings/update/UpdateContext.tsx +++ b/src/routes/pages/settings/update/UpdateContext.tsx @@ -44,7 +44,7 @@ function EnabledUpdateContextProvider({ children }: React.PropsWithChildren) { const [status, setStatus] = useState("not-enabled"); const documentState = useDocumentVisibility(); - const registration = useRef(); + const registration = useRef(undefined); const registerSW = useRegisterSW({ onRegistered(r) { @@ -99,7 +99,7 @@ function EnabledUpdateContextProvider({ children }: React.PropsWithChildren) { } return ( - {children} - + ); } diff --git a/src/routes/pages/shared/CommunityPage.tsx b/src/routes/pages/shared/CommunityPage.tsx index 36bd6d8f62..e1846eda3b 100644 --- a/src/routes/pages/shared/CommunityPage.tsx +++ b/src/routes/pages/shared/CommunityPage.tsx @@ -65,7 +65,7 @@ function CommunityPageContent({ community, actor }: CommunityPageParams) { const router = useOptimizedIonRouter(); const getRandomCommunity = useGetRandomCommunity(); - const appTitleRef = useRef(null); + const appTitleRef = useRef(undefined); const searchOpen = searchQuery || _searchOpen; @@ -151,8 +151,8 @@ function CommunityPageContent({ community, actor }: CommunityPageParams) { if (!sort) return ; return ( - - + + - - + + ); })(); diff --git a/src/routes/pages/shared/ModqueuePage.tsx b/src/routes/pages/shared/ModqueuePage.tsx index 7a80a6a354..bd6139fb97 100644 --- a/src/routes/pages/shared/ModqueuePage.tsx +++ b/src/routes/pages/shared/ModqueuePage.tsx @@ -137,13 +137,13 @@ function ModqueueByCommunity({ community }: { community?: Community }) { - + - + diff --git a/src/routes/pages/shared/SpecialFeedPage.tsx b/src/routes/pages/shared/SpecialFeedPage.tsx index 3e76f7bb19..6af9c21804 100644 --- a/src/routes/pages/shared/SpecialFeedPage.tsx +++ b/src/routes/pages/shared/SpecialFeedPage.tsx @@ -95,10 +95,8 @@ export default function SpecialFeedPage({ type }: SpecialFeedProps) { if (!sort) return ; return ( - - + + - - + + ); })();