This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

feat: move collection share button to header

+3 -31
+2
src/webapp/app/(dashboard)/profile/[handle]/(withoutHeader)/collections/[rkey]/layout.tsx
··· 5 5 import { Fragment, Suspense } from 'react'; 6 6 import CollectionHeader from '@/features/collections/components/collectionHeader/CollectionHeader'; 7 7 import CollectionHeaderSkeleton from '@/features/collections/components/collectionHeader/Skeleton.CollectionHeader'; 8 + import CollectionShareHeaderButton from '@/features/collections/components/CollectionShareHeaderButton/CollectionShareHeaderButton'; 8 9 import CollectionTabs from '@/features/collections/components/collectionTabs/CollectionTabs'; 9 10 import { Container } from '@mantine/core'; 10 11 ··· 50 51 <Fragment> 51 52 <Header> 52 53 <BackButton /> 54 + <CollectionShareHeaderButton handle={handle} rkey={rkey} /> 53 55 </Header> 54 56 <Suspense fallback={<CollectionHeaderSkeleton />}> 55 57 <CollectionHeader handle={handle} rkey={rkey} />
+1 -30
src/webapp/features/collections/components/collectionActions/CollectionActions.tsx
··· 1 1 import { Collection, CollectionAccessType } from '@semble/types'; 2 - import { Group, Menu, ActionIcon, CopyButton } from '@mantine/core'; 2 + import { Group, Menu, ActionIcon } from '@mantine/core'; 3 3 import EditCollectionModal from '../editCollectionModal/EditCollectionModal'; 4 4 import DeleteCollectionModal from '../deleteCollectionModal/DeleteCollectionModal'; 5 5 import { BsThreeDots, BsPencilFill, BsTrash2Fill } from 'react-icons/bs'; 6 - import { MdIosShare } from 'react-icons/md'; 7 6 import { Fragment, useState } from 'react'; 8 7 import { useAuth } from '@/hooks/useAuth'; 9 8 import { FiPlus } from 'react-icons/fi'; 10 9 import AddCardDrawer from '@/features/cards/components/addCardDrawer/AddCardDrawer'; 11 10 import AddCardToModal from '@/features/cards/components/addCardToModal/AddCardToModal'; 12 - import { notifications } from '@mantine/notifications'; 13 11 import FollowButton from '@/features/follows/components/followButton/FollowButton'; 14 12 import useGetCardFromMyLibrary from '@/features/cards/lib/queries/useGetCardFromMyLibrary'; 15 13 import useSembleLibraries from '@/features/semble/lib/queries/useSembleLibraries'; ··· 177 175 const isAuthor = 178 176 isAuthenticated && user?.handle === props.collection.author?.handle; 179 177 180 - const shareLink = 181 - typeof window !== 'undefined' 182 - ? `${window.location.origin}/profile/${props.collection.author?.handle}/collections/${props.collection.rkey}` 183 - : ''; 184 - 185 178 return ( 186 179 <Fragment> 187 180 <Group gap={'xs'}> 188 181 {isAuthenticated && ( 189 182 <AuthenticatedCollectionActions collection={props.collection} /> 190 183 )} 191 - 192 - <CopyButton value={shareLink}> 193 - {({ copy }) => ( 194 - <ActionIcon 195 - variant="light" 196 - color="gray" 197 - size={'lg'} 198 - radius={'xl'} 199 - onClick={(e) => { 200 - e.stopPropagation(); 201 - copy(); 202 - notifications.show({ 203 - message: 'Link copied!', 204 - position: 'top-center', 205 - id: props.collection.id, 206 - }); 207 - }} 208 - > 209 - <MdIosShare size={18} /> 210 - </ActionIcon> 211 - )} 212 - </CopyButton> 213 184 214 185 {isAuthor && <AuthorCollectionMenu collection={props.collection} />} 215 186 </Group>
-1
src/webapp/features/collections/components/collectionActions/Skeleton.CollectionActions.tsx
··· 6 6 <Skeleton w={34} h={34} radius={'xl'} /> 7 7 <Skeleton w={34} h={34} radius={'xl'} /> 8 8 <Skeleton w={34} h={34} radius={'xl'} /> 9 - <Skeleton w={34} h={34} radius={'xl'} /> 10 9 </Group> 11 10 ); 12 11 }