Memoize clear share modal props callback

This commit is contained in:
Sam Becker 2025-10-26 10:37:02 -05:00
parent e114343d1f
commit ff9fc94ce1

View File

@ -4,7 +4,7 @@ import Modal from '@/components/Modal';
import { TbPhotoShare } from 'react-icons/tb'; import { TbPhotoShare } from 'react-icons/tb';
import { clsx } from 'clsx/lite'; import { clsx } from 'clsx/lite';
import { BiCopy } from 'react-icons/bi'; import { BiCopy } from 'react-icons/bi';
import { ReactNode, useEffect } from 'react'; import { ReactNode, useCallback, useEffect } from 'react';
import { shortenUrl } from '@/utility/url'; import { shortenUrl } from '@/utility/url';
import { toastSuccess } from '@/toast'; import { toastSuccess } from '@/toast';
import { SOCIAL_NETWORKS } from '@/app/config'; import { SOCIAL_NETWORKS } from '@/app/config';
@ -71,10 +71,14 @@ export default function ShareModal({
{icon} {icon}
</LoaderButton>; </LoaderButton>;
useOnPathChange(() => setShareModalProps?.(undefined)); const clearShareModalProps = useCallback(() =>
setShareModalProps?.(undefined),
[setShareModalProps]);
useOnPathChange(clearShareModalProps);
return ( return (
<Modal onClose={() => setShareModalProps?.(undefined)}> <Modal onClose={clearShareModalProps}>
<div className="space-y-2 w-full"> <div className="space-y-2 w-full">
{title && {title &&
<div className={clsx( <div className={clsx(