Skip to content

Commit e669fb3

Browse files
committed
Submitter screening / submission / review tab fixes
1 parent d6ad95d commit e669fb3

File tree

4 files changed

+431
-33
lines changed

4 files changed

+431
-33
lines changed

src/apps/review/src/lib/components/TableSubmissionScreening/TableSubmissionScreening.tsx

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ import type { UseSubmissionDownloadAccessResult } from '../../hooks/useSubmissio
3636

3737
import styles from './TableSubmissionScreening.module.scss'
3838

39+
const VIEW_OWN_SCORECARD_TOOLTIP = 'You can only view scorecards for your own submissions.'
40+
3941
interface Props {
4042
className?: string
4143
screenings: Screening[]
@@ -216,11 +218,11 @@ const createBaseColumns = ({
216218
virusScanColumn,
217219
]
218220

219-
const createScreeningColumns = (): TableColumn<Screening>[] => [
221+
const createScreeningColumns = (currentMemberId?: string): TableColumn<Screening>[] => [
220222
{
221223
label: 'Screener',
222224
propertyName: 'screenerHandle',
223-
renderer: (data: Screening) => (data.screener?.id ? (
225+
renderer: (data: Screening) => (data.screener?.memberHandle ? (
224226
<a
225227
href={getHandleUrl(data.screener)}
226228
target='_blank'
@@ -251,7 +253,35 @@ const createScreeningColumns = (): TableColumn<Screening>[] => [
251253
{
252254
label: 'Screening Score',
253255
propertyName: 'score',
254-
type: 'text',
256+
renderer: (data: Screening) => {
257+
const scoreValue = data.score ?? '-'
258+
259+
if (!data.reviewId) {
260+
return <span>{scoreValue}</span>
261+
}
262+
263+
const canViewScorecard = Boolean(data.memberId && data.memberId === currentMemberId)
264+
265+
if (!canViewScorecard) {
266+
return (
267+
<Tooltip content={VIEW_OWN_SCORECARD_TOOLTIP} triggerOn='click-hover'>
268+
<span className={styles.tooltipTrigger}>
269+
<span className={styles.textBlue}>{scoreValue}</span>
270+
</span>
271+
</Tooltip>
272+
)
273+
}
274+
275+
return (
276+
<Link
277+
to={`./../review/${data.reviewId}`}
278+
className={styles.textBlue}
279+
>
280+
{scoreValue}
281+
</Link>
282+
)
283+
},
284+
type: 'element',
255285
},
256286
{
257287
label: 'Screening Result',
@@ -404,6 +434,7 @@ export const TableSubmissionScreening: FC<Props> = (props: Props) => {
404434
restrictionMessage,
405435
isSubmissionDownloadRestrictedForMember,
406436
getRestrictionMessageForMember,
437+
currentMemberId,
407438
}: UseSubmissionDownloadAccessResult = useSubmissionDownloadAccess()
408439
const showScreeningColumns = props.showScreeningColumns ?? true
409440
const submissionTypes = useMemo(
@@ -608,7 +639,10 @@ export const TableSubmissionScreening: FC<Props> = (props: Props) => {
608639
[handleColumn, submissionColumn, submissionDateColumn, virusScanColumn],
609640
)
610641

611-
const screeningColumns = useMemo<TableColumn<Screening>[]>(createScreeningColumns, [])
642+
const screeningColumns = useMemo<TableColumn<Screening>[]>(
643+
() => createScreeningColumns(currentMemberId),
644+
[currentMemberId],
645+
)
612646

613647
const actionColumn = useMemo(
614648
() => createActionColumn({

0 commit comments

Comments
 (0)