diff --git a/package.json b/package.json index 95d24da..7e87ca1 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@emotion/styled": "^11.10.6", "@heroicons/react": "^2.0.16", "@next-auth/prisma-adapter": "^1.0.5", + "@postlight/parser": "^2.2.3", "@premieroctet/next-admin": "1.3.8", "@prisma/client": "^4.11.0", "@radix-ui/react-dialog": "^1.0.3", diff --git a/prisma/json-schema/json-schema.json b/prisma/json-schema/json-schema.json index a84b086..c8e4a60 100644 --- a/prisma/json-schema/json-schema.json +++ b/prisma/json-schema/json-schema.json @@ -278,6 +278,18 @@ "string", "null" ] + }, + "subscriptionId": { + "type": [ + "string", + "null" + ] + }, + "prompt": { + "type": [ + "string", + "null" + ] } } }, diff --git a/prisma/migrations/20231023151621_subscription_id/migration.sql b/prisma/migrations/20231023151621_subscription_id/migration.sql new file mode 100644 index 0000000..7ceab2c --- /dev/null +++ b/prisma/migrations/20231023151621_subscription_id/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "teams" ADD COLUMN "subscriptionId" TEXT; diff --git a/prisma/migrations/20231024143643_team_prompt/migration.sql b/prisma/migrations/20231024143643_team_prompt/migration.sql new file mode 100644 index 0000000..d646a6f --- /dev/null +++ b/prisma/migrations/20231024143643_team_prompt/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ADD COLUMN "prompt" TEXT; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 13cd38e..469706d 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -113,6 +113,8 @@ model Team { apiKey String? nextSuggestedDigestTitle String? color String? + subscriptionId String? + prompt String? @@unique([id, slackTeamId]) @@unique(slug) diff --git a/src/components/Button.tsx b/src/components/Button.tsx index 81aea2d..c052c9a 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -88,41 +88,39 @@ const Button = forwardRef((props, ref) => { disabled={disabled || isLoading} {...rest} > - {isLoading && ( - <> - + {isLoading ? ( +
+ {!!loadingText && loadingText} + - {!!loadingText && loadingText} - +
+ ) : ( + + {children && ( + + {children} + + )} + {icon && !isLoading && ( + + {icon} + + )} + )} - - {children && ( - - {children} - - )} - {icon && !isLoading && ( - - {icon} - - )} - ); }); diff --git a/src/components/Input.tsx b/src/components/Input.tsx index 2dabe09..3ec6427 100644 --- a/src/components/Input.tsx +++ b/src/components/Input.tsx @@ -33,7 +33,7 @@ export const TextArea = forwardRef< ); }); -interface SelectOptionProps { +export interface SelectOptionProps { label: string; value: T; } diff --git a/src/components/digests/block-card/bookmark-card/BookmarkCard.tsx b/src/components/digests/block-card/bookmark-card/BookmarkCard.tsx index 0b03f20..cbaaaef 100644 --- a/src/components/digests/block-card/bookmark-card/BookmarkCard.tsx +++ b/src/components/digests/block-card/bookmark-card/BookmarkCard.tsx @@ -66,6 +66,7 @@ export default function BlockBookmarkCard({ ...(title && { title }), ...(description && { description }), }} + url={url} /> ); diff --git a/src/components/digests/dialog/EditBookmarkDialog.tsx b/src/components/digests/dialog/EditBookmarkDialog.tsx index 04939a3..9c15563 100644 --- a/src/components/digests/dialog/EditBookmarkDialog.tsx +++ b/src/components/digests/dialog/EditBookmarkDialog.tsx @@ -13,6 +13,7 @@ import Button from '../../Button'; import { Dialog, DialogContent } from '../../Dialog'; import { Input, Select, TextArea } from '../../Input'; import { Props as BookmarkCardProps } from '../block-card/BlockCard'; +import SummaryButton from './SummaryButton'; interface IFormValues { title: string; @@ -25,6 +26,7 @@ interface Props { setIsOpen: (isOpen: boolean) => void; bookmarkDigest: BookmarkCardProps['block']; defaultValues?: Partial; + url: string; } const StyleSelectOptions: Array<{ @@ -50,12 +52,14 @@ export default function EditBookmarkDialog({ setIsOpen, bookmarkDigest, defaultValues, + url, }: Props) { const { register, handleSubmit, formState: { errors, isDirty }, reset, + setValue, } = useForm({ defaultValues, }); @@ -63,7 +67,7 @@ export default function EditBookmarkDialog({ const { isRefreshing, refresh } = useTransitionRefresh(); const params = useParams(); - const { id: teamId } = useTeam(); + const { id: teamId, subscriptionId } = useTeam(); const { mutate: updateBookDigest, isLoading: isRemoving } = useMutation< AxiosResponse, @@ -153,6 +157,13 @@ export default function EditBookmarkDialog({