Merge pull request #122 from snowball-tools/repo

This commit is contained in:
Vivian Phung 2024-02-27 09:18:20 -05:00 committed by GitHub
commit 5680961964
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 56 additions and 6 deletions

View File

@ -7,6 +7,7 @@ import { Chip, IconButton, Spinner } from '@material-tailwind/react';
import { relativeTimeISO } from '../../../utils/time'; import { relativeTimeISO } from '../../../utils/time';
import { GitRepositoryDetails } from '../../../types'; import { GitRepositoryDetails } from '../../../types';
import { useGQLClient } from '../../../context/GQLClientContext'; import { useGQLClient } from '../../../context/GQLClientContext';
import { GithubIcon, LockIcon } from 'components/shared/CustomIcon';
interface ProjectRepoCardProps { interface ProjectRepoCardProps {
repository: GitRepositoryDetails; repository: GitRepositoryDetails;
@ -47,16 +48,18 @@ const ProjectRepoCard: React.FC<ProjectRepoCardProps> = ({ repository }) => {
className="group flex items-center gap-4 text-gray-500 text-xs hover:bg-gray-100 p-2 cursor-pointer" className="group flex items-center gap-4 text-gray-500 text-xs hover:bg-gray-100 p-2 cursor-pointer"
onClick={createProject} onClick={createProject}
> >
<div>^</div> <div className="w-10 h-10 bg-white rounded-md justify-center items-center gap-1.5 inline-flex">
<GithubIcon />
</div>
<div className="grow"> <div className="grow">
<div> <div>
<span className="text-black">{repository.full_name}</span> <span className="text-black">{repository.full_name}</span>
{repository.visibility === 'private' && ( {repository.visibility === 'private' && (
<Chip <Chip
className="normal-case inline ml-6 font-normal" className="normal-case inline ml-6 font-normal text-xs text-xs bg-orange-50 border border-orange-200 text-orange-600 items-center gap-1 inline-flex"
size="sm" size="sm"
value="Private" value="Private"
icon={'^'} icon={<LockIcon />}
/> />
)} )}
</div> </div>

View File

@ -9,6 +9,7 @@ import SearchBar from '../../SearchBar';
import ProjectRepoCard from './ProjectRepoCard'; import ProjectRepoCard from './ProjectRepoCard';
import { GitOrgDetails, GitRepositoryDetails } from '../../../types'; import { GitOrgDetails, GitRepositoryDetails } from '../../../types';
import AsyncSelect from '../../shared/AsyncSelect'; import AsyncSelect from '../../shared/AsyncSelect';
import { GithubIcon } from 'components/shared/CustomIcon';
const DEFAULT_SEARCHED_REPO = ''; const DEFAULT_SEARCHED_REPO = '';
const REPOS_PER_PAGE = 5; const REPOS_PER_PAGE = 5;
@ -108,7 +109,7 @@ const RepositoryList = ({ octokit }: RepositoryListProps) => {
return ( return (
<div className="p-4"> <div className="p-4">
<div className="flex gap-2 mb-2"> <div className="flex gap-2 mb-2 items-center">
<div className="basis-1/3"> <div className="basis-1/3">
<AsyncSelect <AsyncSelect
value={selectedAccount} value={selectedAccount}
@ -116,12 +117,14 @@ const RepositoryList = ({ octokit }: RepositoryListProps) => {
> >
{accounts.map((account) => ( {accounts.map((account) => (
<Option key={account.id} value={account.login}> <Option key={account.id} value={account.login}>
^ {account.login} <div className="flex items-center gap-2 justify-start">
<GithubIcon /> {account.login}
</div>
</Option> </Option>
))} ))}
</AsyncSelect> </AsyncSelect>
</div> </div>
<div className="basis-2/3"> <div className="basis-2/3 flex-grow flex items-center">
<SearchBar <SearchBar
value={searchedRepo} value={searchedRepo}
onChange={(event) => setSearchedRepo(event.target.value)} onChange={(event) => setSearchedRepo(event.target.value)}

View File

@ -0,0 +1,21 @@
import React from 'react';
import { CustomIcon, CustomIconProps } from './CustomIcon';
export const GithubIcon: React.FC<CustomIconProps> = (props) => {
return (
<CustomIcon
width="20"
height="20"
viewBox="0 0 20 20"
fill="none"
{...props}
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M9.9702 0.206024C4.45694 0.206024 0 4.69582 0 10.2503C0 14.6903 2.85571 18.4487 6.81735 19.7789C7.31265 19.8789 7.49408 19.5628 7.49408 19.2968C7.49408 19.064 7.47776 18.2658 7.47776 17.4342C4.70429 18.033 4.12674 16.2368 4.12674 16.2368C3.68102 15.0728 3.02061 14.7736 3.02061 14.7736C2.11286 14.1583 3.08673 14.1583 3.08673 14.1583C4.09367 14.2248 4.62204 15.1893 4.62204 15.1893C5.51327 16.7191 6.94939 16.2868 7.52714 16.0207C7.60959 15.3721 7.87388 14.9232 8.15449 14.6738C5.94245 14.4409 3.6151 13.5762 3.6151 9.71807C3.6151 8.62051 4.01102 7.72256 4.63837 7.02419C4.53939 6.7748 4.19265 5.74358 4.73755 4.36337C4.73755 4.36337 5.57939 4.09725 7.47755 5.39439C8.29022 5.17453 9.12832 5.06268 9.9702 5.06174C10.812 5.06174 11.6702 5.17827 12.4627 5.39439C14.361 4.09725 15.2029 4.36337 15.2029 4.36337C15.7478 5.74358 15.4008 6.7748 15.3018 7.02419C15.9457 7.72256 16.3253 8.62051 16.3253 9.71807C16.3253 13.5762 13.998 14.4242 11.7694 14.6738C12.1327 14.9897 12.4461 15.5883 12.4461 16.5362C12.4461 17.8832 12.4298 18.9642 12.4298 19.2966C12.4298 19.5628 12.6114 19.8789 13.1065 19.7791C17.0682 18.4485 19.9239 14.6903 19.9239 10.2503C19.9402 4.69582 15.4669 0.206024 9.9702 0.206024Z"
fill="#0B1D2E"
/>
</CustomIcon>
);
};

View File

@ -0,0 +1,21 @@
import React from 'react';
import { CustomIcon, CustomIconProps } from './CustomIcon';
export const LockIcon: React.FC<CustomIconProps> = (props) => {
return (
<CustomIcon
width="16"
height="16"
viewBox="0 0 16 16"
fill="none"
{...props}
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M7.99984 1.5C6.15889 1.5 4.6665 2.99238 4.6665 4.83333V6H4.49984C3.48732 6 2.6665 6.82081 2.6665 7.83333V12.8333C2.6665 13.8459 3.48732 14.6667 4.49984 14.6667H11.4998C12.5124 14.6667 13.3332 13.8459 13.3332 12.8333V7.83333C13.3332 6.82081 12.5124 6 11.4998 6H11.3332V4.83333C11.3332 2.99238 9.84079 1.5 7.99984 1.5ZM10.3332 6V4.83333C10.3332 3.54467 9.2885 2.5 7.99984 2.5C6.71117 2.5 5.6665 3.54467 5.6665 4.83333V6H10.3332ZM7.99984 8.83333C8.27598 8.83333 8.49984 9.05719 8.49984 9.33333V11.3333C8.49984 11.6095 8.27598 11.8333 7.99984 11.8333C7.72369 11.8333 7.49984 11.6095 7.49984 11.3333V9.33333C7.49984 9.05719 7.72369 8.83333 7.99984 8.83333Z"
fill="#EA580C"
/>
</CustomIcon>
);
};

View File

@ -22,6 +22,8 @@ export * from './EllipseIcon';
export * from './EllipsesIcon'; export * from './EllipsesIcon';
export * from './SnowballIcon'; export * from './SnowballIcon';
export * from './NotificationBellIcon'; export * from './NotificationBellIcon';
export * from './GithubIcon';
export * from './LockIcon';
export * from './PencilIcon'; export * from './PencilIcon';
export * from './CheckRadioIcon'; export * from './CheckRadioIcon';
export * from './ChevronDownIcon'; export * from './ChevronDownIcon';