Skip to content

Commit

Permalink
chore: editable personnel view
Browse files Browse the repository at this point in the history
  • Loading branch information
1emu committed May 20, 2024
1 parent c63118f commit 8f65e08
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 14 deletions.
20 changes: 8 additions & 12 deletions src/components/GrantRequest/PersonnelView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@ import { useMemo } from 'react'

import useFormatMessage from '../../hooks/useFormatMessage'
import { TeamMember } from '../../types/grants'
import EditableBreakdownContent from '../Projects/EditableBreakdownContent.tsx'
import ExpandableBreakdownItem from '../Projects/ExpandableBreakdownItem.tsx'
import ProjectSidebarTitle from '../Projects/ProjectSidebarTitle.tsx'
import ProposalMarkdown from '../Proposal/View/ProposalMarkdown'

import { BreakdownItem } from './BreakdownAccordion'
import BreakdownAccordion, { BreakdownItem } from './BreakdownAccordion'
import BreakdownContent from './BreakdownContent'

interface Props {
members: TeamMember[]
Expand All @@ -16,20 +15,17 @@ function PersonnelView({ members }: Props) {
const t = useFormatMessage()
const items = useMemo(
() =>
members.map<BreakdownItem>(({ name, role, about, relevantLink, address }) => ({
title: name + (address || ''),
members.map<BreakdownItem>(({ name, role, about, relevantLink }) => ({
title: name,
subtitle: role,
content: <EditableBreakdownContent about={about} onClick={() => {}} relevantLink={relevantLink} />,
content: <BreakdownContent description={about} url={relevantLink} />,
})),
[members]
)

return (
<>
<ProjectSidebarTitle text={t('page.proposal_view.grant.personnel_title')} />
{items.map((item, key) => {
return <ExpandableBreakdownItem key={key} item={item} />
})}
<ProposalMarkdown text={`## ${t('page.proposal_view.grant.personnel_title')}`} />
<BreakdownAccordion items={items} />
</>
)
}
Expand Down
37 changes: 37 additions & 0 deletions src/components/Projects/EditablePersonnelView.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { useMemo } from 'react'

import useFormatMessage from '../../hooks/useFormatMessage.ts'
import { TeamMember } from '../../types/grants.ts'
import { BreakdownItem } from '../GrantRequest/BreakdownAccordion.tsx'

import EditableBreakdownContent from './EditableBreakdownContent.tsx'
import ExpandableBreakdownItem from './ExpandableBreakdownItem.tsx'
import ProjectSidebarTitle from './ProjectSidebarTitle.tsx'

interface Props {
members: TeamMember[]
}

function EditablePersonnelView({ members }: Props) {
const t = useFormatMessage()
const items = useMemo(
() =>
members.map<BreakdownItem>(({ name, role, about, relevantLink, address }) => ({
title: name + (address || ''),
subtitle: role,
content: <EditableBreakdownContent about={about} onClick={() => {}} relevantLink={relevantLink} />,
})),
[members]
)

return (
<>
<ProjectSidebarTitle text={t('page.proposal_view.grant.personnel_title')} />
{items.map((item, key) => {
return <ExpandableBreakdownItem key={key} item={item} />
})}
</>
)
}

export default EditablePersonnelView
4 changes: 2 additions & 2 deletions src/components/Projects/ProjectGeneralInfo.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Project } from '../../types/proposals.ts'
import PersonnelView from '../GrantRequest/PersonnelView.tsx'

import EditablePersonnelView from './EditablePersonnelView.tsx'
import './ProjectSidebar.css'

interface Props {
Expand All @@ -10,7 +10,7 @@ interface Props {
function ProjectGeneralInfo({ project }: Props) {
return (
<div className="ProjectSidebar__ContentContainer">
<PersonnelView members={project.personnel} />
<EditablePersonnelView members={project.personnel} />
</div>
)
}
Expand Down

0 comments on commit 8f65e08

Please sign in to comment.