diff --git a/src/webapp/features/cards/components/addCardToModal/AddCardToModal.tsx b/src/webapp/features/cards/components/addCardToModal/AddCardToModal.tsx index aa576905..440a4b6b 100644 --- a/src/webapp/features/cards/components/addCardToModal/AddCardToModal.tsx +++ b/src/webapp/features/cards/components/addCardToModal/AddCardToModal.tsx @@ -102,7 +102,7 @@ export default function AddCardToModal(props: Props) { onClose={props.onClose} title={ - Add or update {props.cardId ? 'card' : 'link'} + Add or update {subtitle} diff --git a/src/webapp/features/collections/components/collectionActions/CollectionActions.tsx b/src/webapp/features/collections/components/collectionActions/CollectionActions.tsx index c8c58706..0e142680 100644 --- a/src/webapp/features/collections/components/collectionActions/CollectionActions.tsx +++ b/src/webapp/features/collections/components/collectionActions/CollectionActions.tsx @@ -7,10 +7,15 @@ import { MdIosShare } from 'react-icons/md'; import { Fragment, useState } from 'react'; import { useAuth } from '@/hooks/useAuth'; import { FiPlus } from 'react-icons/fi'; +import { IoBookmarkOutline } from 'react-icons/io5'; +import { TbCards } from 'react-icons/tb'; import AddCardDrawer from '@/features/cards/components/addCardDrawer/AddCardDrawer'; +import AddCardToModal from '@/features/cards/components/addCardToModal/AddCardToModal'; import { notifications } from '@mantine/notifications'; import FollowButton from '@/features/follows/components/followButton/FollowButton'; import { useWebHaptics } from 'web-haptics/react'; +import { LuLibrary } from 'react-icons/lu'; +import { BiCollection } from 'react-icons/bi'; interface Props { collection: Collection & { @@ -23,31 +28,53 @@ export default function CollectionActions(props: Props) { const [showEditModal, setShowEditModal] = useState(false); const [showDeleteModal, setShowDeleteModal] = useState(false); const [showAddDrawer, setShowAddDrawer] = useState(false); + const [showSaveToLibraryModal, setShowSaveToLibraryModal] = useState(false); const { trigger } = useWebHaptics(); const isAuthor = user?.handle === props.collection.author?.handle; + const canAddCard = + isAuthenticated && + (props.collection.accessType === CollectionAccessType.OPEN || isAuthor); + const shareLink = typeof window !== 'undefined' ? `${window.location.origin}/profile/${props.collection.author?.handle}/collections/${props.collection.rkey}` : ''; + const collectionPageUrl = `${process.env.NEXT_PUBLIC_APP_URL}/profile/${props.collection.author?.handle}/collections/${props.collection.rkey}`; + return ( - {isAuthenticated && - (props.collection.accessType === CollectionAccessType.OPEN || - isAuthor) && ( - - )} + {isAuthenticated && ( + + + + + + } + onClick={() => setShowSaveToLibraryModal(true)} + > + To your library + + {canAddCard && ( + } + onClick={() => setShowAddDrawer(true)} + > + To this collection + + )} + + + )} {isAuthenticated && !isAuthor && ( + setShowSaveToLibraryModal(false)} + url={collectionPageUrl} + urlLibraryCount={0} + /> + setShowEditModal(false)}