import type { ReactView } from "@ethicdevs/react-monolith";
import React from "react";
import type { Organization, Repository, User } from "@prisma/client";
import type { CommonProps } from "../../types";
import { IslandWrapper, Layout, PageWrapper } from "../../components";
import RepositoryHero from "../../islands/RepositoryHero";
import RepositoriesList from "../../islands/RepositoriesList";
export interface UserDetailsViewProps extends CommonProps {
user: User;
currentUser: User | null;
repositories: (Repository & { parentOrg: Organization })[];
}
const UserDetailsView: ReactView<UserDetailsViewProps> = ({
commonProps,
user,
currentUser,
repositories,
}) => {
return (
<Layout
{...commonProps}
showDrawerSettings={currentUser != null && currentUser!.id === user.id}
username={user.username!}
>
<PageWrapper>
<IslandWrapper data-islandid={`${RepositoryHero.name}$$0`}>
<RepositoryHero
themeScheme={commonProps.themeScheme}
parentOrg={{ slug: user.username } as any}
repo={{ slug: "" } as any}
path={`Repositories`}
showForkButton={false}
showNewButton={false}
/>
</IslandWrapper>
<IslandWrapper data-islandid={`${RepositoriesList.name}$$0`}>
<RepositoriesList
repositories={repositories}
themeScheme={commonProps.themeScheme}
/>
</IslandWrapper>
</PageWrapper>
</Layout>
);
};
UserDetailsView.displayName = "UserDetailsView";
export default UserDetailsView;