diff --git a/src/webapp/features/cards/components/addCardDrawer/AddCardDrawer.tsx b/src/webapp/features/cards/components/addCardDrawer/AddCardDrawer.tsx index b3624865..278200e1 100644 --- a/src/webapp/features/cards/components/addCardDrawer/AddCardDrawer.tsx +++ b/src/webapp/features/cards/components/addCardDrawer/AddCardDrawer.tsx @@ -8,6 +8,7 @@ import { Text, Textarea, TextInput, + ThemeIcon, } from '@mantine/core'; import { useForm } from '@mantine/form'; import { notifications } from '@mantine/notifications'; @@ -23,11 +24,13 @@ import { track } from '@vercel/analytics'; import useMyCollections from '@/features/collections/lib/queries/useMyCollections'; import { isMarginUri, getMarginUrl } from '@/lib/utils/margin'; import MarginLogo from '@/components/MarginLogo'; +import { Collection, CollectionAccessType } from '@semble/types'; +import { FaSeedling } from 'react-icons/fa6'; interface Props { isOpen: boolean; onClose: () => void; - selectedCollection?: SelectableCollectionItem; + selectedCollection?: Collection; initialUrl?: string; } @@ -176,6 +179,15 @@ export default function AddCardDrawer(props: Props) { rightSection={ isMarginUri(col.uri) ? ( + ) : col.accessType === CollectionAccessType.OPEN ? ( + + + ) : undefined } onClick={() => { diff --git a/src/webapp/features/cards/components/addCardToModal/AddCardToModalContent.tsx b/src/webapp/features/cards/components/addCardToModal/AddCardToModalContent.tsx index a58ac8e1..cbd8b7b1 100644 --- a/src/webapp/features/cards/components/addCardToModal/AddCardToModalContent.tsx +++ b/src/webapp/features/cards/components/addCardToModal/AddCardToModalContent.tsx @@ -1,6 +1,6 @@ 'use client'; -import type { UrlCard } from '@semble/types'; +import type { Collection, UrlCard } from '@semble/types'; import { Stack } from '@mantine/core'; import { notifications } from '@mantine/notifications'; import { useState } from 'react'; @@ -13,12 +13,6 @@ import useAddCard from '@/features/cards/lib/mutations/useAddCard'; import { track } from '@vercel/analytics'; import AddCardActions from '../addCardActions/AddCardActions'; -interface SelectableCollectionItem { - id: string; - name: string; - cardCount: number; -} - interface Props { onClose: () => void; url: string; @@ -49,7 +43,7 @@ export default function AddCardToModalContent(props: Props) { ); const [selectedCollections, setSelectedCollections] = - useState(collectionsWithCard); + useState(collectionsWithCard); const isSaving = addCard.isPending || updateCardAssociations.isPending; diff --git a/src/webapp/features/collections/components/collectionActions/CollectionActions.tsx b/src/webapp/features/collections/components/collectionActions/CollectionActions.tsx index d61a01dc..2f6abf83 100644 --- a/src/webapp/features/collections/components/collectionActions/CollectionActions.tsx +++ b/src/webapp/features/collections/components/collectionActions/CollectionActions.tsx @@ -1,4 +1,4 @@ -import { CollectionAccessType } from '@semble/types'; +import { Collection, CollectionAccessType } from '@semble/types'; import { Group, Menu, ActionIcon, CopyButton, Button } from '@mantine/core'; import EditCollectionModal from '../editCollectionModal/EditCollectionModal'; import DeleteCollectionModal from '../deleteCollectionModal/DeleteCollectionModal'; @@ -12,14 +12,9 @@ import { notifications } from '@mantine/notifications'; import { useFeatureFlags } from '@/lib/clientFeatureFlags'; interface Props { - id: string; - rkey: string; - name: string; - description?: string; - accessType?: CollectionAccessType; - authorHandle: string; - cardCount: number; - uri?: string; + collection: Collection & { + rkey: string; + }; } export default function CollectionActions(props: Props) { @@ -29,17 +24,18 @@ export default function CollectionActions(props: Props) { const [showDeleteModal, setShowDeleteModal] = useState(false); const [showAddDrawer, setShowAddDrawer] = useState(false); - const isAuthor = user?.handle === props.authorHandle; + const isAuthor = user?.handle === props.collection.author?.handle; const shareLink = typeof window !== 'undefined' - ? `${window.location.origin}/profile/${props.authorHandle}/collections/${props.rkey}` + ? `${window.location.origin}/profile/${props.collection.author?.handle}/collections/${props.collection.rkey}` : ''; return ( {isAuthenticated && - (props.accessType === CollectionAccessType.OPEN || isAuthor) && + (props.collection.accessType === CollectionAccessType.OPEN || + isAuthor) && (featureFlags?.openCollections || isAuthor) && (