Home / Function/ PublicationSelection() — supabase Function Reference

PublicationSelection() — supabase Function Reference

Architecture documentation for the PublicationSelection() function in PublicationSelection.tsx from the supabase codebase.

Entity Profile

Relationship Graph

Source Code

apps/studio/components/interfaces/Database/Replication/DestinationPanel/DestinationForm/PublicationSelection.tsx lines 19–68

export const PublicationSelection = ({
  form,
  sourceId,
  visible,
  onSelectNewPublication,
}: PublicationSelectionProps) => {
  const { ref: projectRef } = useParams()
  const { publicationName } = form.watch()

  const {
    data: publications = [],
    isPending: isLoadingPublications,
    isSuccess: isSuccessPublications,
  } = useReplicationPublicationsQuery({ projectRef, sourceId })

  const publicationNames = useMemo(() => publications?.map((pub) => pub.name) ?? [], [publications])
  const isSelectedPublicationMissing =
    isSuccessPublications && !!publicationName && !publicationNames.includes(publicationName)

  return (
    <FormField_Shadcn_
      control={form.control}
      name="publicationName"
      render={({ field }) => (
        <FormItemLayout
          layout="horizontal"
          label="Publication"
          description="Tables in the selected publication will be replicated to this destination"
        >
          <FormControl_Shadcn_>
            <PublicationsComboBox
              publications={publications}
              isLoadingPublications={isLoadingPublications}
              field={field}
              onNewPublicationClick={() => onSelectNewPublication()}
            />
          </FormControl_Shadcn_>
          {isSelectedPublicationMissing && (
            <Admonition type="warning" className="mt-2">
              <p className="!leading-normal">
                The publication <strong className="text-foreground">{publicationName}</strong> was
                not found, it may have been renamed or deleted, please select another one.
              </p>
            </Admonition>
          )}
        </FormItemLayout>
      )}
    />
  )
}

Subdomains

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free