import type { ReactView } from "@ethicdevs/react-monolith";
import React from "react";
import type { Organization, PullRequest } from "@prisma/client";
import type { CommonProps, RepositoryWithForkedFromRepo } from "../../types";
import { IslandWrapper, Layout, PageWrapper } from "../../components";
import RepositoryHero from "../../islands/RepositoryHero";
import RepositoryPullRequestCreateForm, {
RepositoryPullRequestCreateFormVariant,
} from "../../islands/RepositoryPullRequestCreateForm";
export interface RepositoryPullRequestCreateViewProps extends CommonProps {
errorMessage?: string | null;
initialValues?: PullRequest;
parentOrg: Organization;
repo: RepositoryWithForkedFromRepo;
variant: RepositoryPullRequestCreateFormVariant;
}
const RepositoryPullRequestCreateView: ReactView<RepositoryPullRequestCreateViewProps> =
({ commonProps, parentOrg, repo, variant }) => {
return (
<Layout {...commonProps}>
<PageWrapper>
<IslandWrapper data-islandid={`${RepositoryHero.name}$$0`}>
<RepositoryHero
forkedFromRepo={repo.forkedFromRepo}
forksCount={repo.forks.length}
parentOrg={parentOrg}
path={`Pull Requests / New`}
repo={repo}
/>
</IslandWrapper>
<IslandWrapper
data-islandid={`${RepositoryPullRequestCreateForm.name}$$0`}
>
<RepositoryPullRequestCreateForm
themeScheme={commonProps.themeScheme}
variant={variant}
/>
</IslandWrapper>
</PageWrapper>
</Layout>
);
};
RepositoryPullRequestCreateView.displayName = "RepositoryPullRequestCreateView";
export default RepositoryPullRequestCreateView;