From fb6cff2fe3101e80d2932285c0b03e0d5be872f8 Mon Sep 17 00:00:00 2001 From: Sebastien Castiel Date: Thu, 7 Dec 2023 19:38:03 -0500 Subject: Share button --- src/app/groups/[groupId]/expenses/expense-list.tsx | 2 +- src/app/groups/[groupId]/layout.tsx | 16 ++++++--- src/app/groups/[groupId]/share-button.tsx | 42 ++++++++++++++++++++++ 3 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 src/app/groups/[groupId]/share-button.tsx (limited to 'src/app/groups') diff --git a/src/app/groups/[groupId]/expenses/expense-list.tsx b/src/app/groups/[groupId]/expenses/expense-list.tsx index 907a37a..13a85bd 100644 --- a/src/app/groups/[groupId]/expenses/expense-list.tsx +++ b/src/app/groups/[groupId]/expenses/expense-list.tsx @@ -29,7 +29,7 @@ export function ExpenseList({
{ diff --git a/src/app/groups/[groupId]/layout.tsx b/src/app/groups/[groupId]/layout.tsx index 5fbd7cb..ca50762 100644 --- a/src/app/groups/[groupId]/layout.tsx +++ b/src/app/groups/[groupId]/layout.tsx @@ -1,5 +1,6 @@ import { GroupTabs } from '@/app/groups/[groupId]/group-tabs' import { SaveGroupLocally } from '@/app/groups/[groupId]/save-recent-group' +import { ShareButton } from '@/app/groups/[groupId]/share-button' import { getGroup } from '@/lib/api' import { Metadata } from 'next' import Link from 'next/link' @@ -34,11 +35,16 @@ export default async function GroupLayout({ return ( <> -

- {group.name} -

- - +
+

+ {group.name} +

+ +
+ + +
+
{children} diff --git a/src/app/groups/[groupId]/share-button.tsx b/src/app/groups/[groupId]/share-button.tsx new file mode 100644 index 0000000..808f3a0 --- /dev/null +++ b/src/app/groups/[groupId]/share-button.tsx @@ -0,0 +1,42 @@ +import { CopyButton } from '@/components/copy-button' +import { Button } from '@/components/ui/button' +import { Input } from '@/components/ui/input' +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover' +import { env } from '@/lib/env' +import { Share } from 'lucide-react' + +type Props = { + groupId: string +} + +export function ShareButton({ groupId }: Props) { + const url = `${env.NEXT_PUBLIC_BASE_URL}/groups/${groupId}` + + return ( + + + + + +

+ For other participants to see the group and add expenses, share its + URL with them. +

+
+ + +
+

+ Warning! Every person with the group URL will be able + to see and edit expenses. Share with caution! +

+
+
+ ) +} -- cgit v1.3