From d126fa67198bc1d832705b1f3573f67a7e019cb6 Mon Sep 17 00:00:00 2001 From: Jannis Baum Date: Thu, 14 Jul 2022 18:40:46 +0200 Subject: [PATCH] refactor(anni): make placeholders more extensible --- .../components/bricks/BrickForm.tsx | 11 ++-------- .../database/helpers/resolve-bricks.ts | 20 ++++++++++++++++--- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/annotation-interface/components/bricks/BrickForm.tsx b/annotation-interface/components/bricks/BrickForm.tsx index 8be8c13c8..54ee691a6 100644 --- a/annotation-interface/components/bricks/BrickForm.tsx +++ b/annotation-interface/components/bricks/BrickForm.tsx @@ -14,10 +14,7 @@ import { translationsToArray, translationsToMap, } from '../../database/helpers/brick-translations'; -import { - allBrickPlaceholders, - medicationBrickPlaceholders, -} from '../../database/helpers/resolve-bricks'; +import { placeHoldersForBrick } from '../../database/helpers/resolve-bricks'; import { ITextBrick, ITextBrickTranslation, @@ -126,11 +123,7 @@ const BrickForm = ({ usage, brick }: Props) => { onChange={(text) => updateTranslation(language, text) } - validPlaceholders={ - usage.startsWith('Drug') - ? [...medicationBrickPlaceholders] - : [...allBrickPlaceholders] - } + validPlaceholders={placeHoldersForBrick(usage)} /> ))} diff --git a/annotation-interface/database/helpers/resolve-bricks.ts b/annotation-interface/database/helpers/resolve-bricks.ts index 912f836d2..528a1c782 100644 --- a/annotation-interface/database/helpers/resolve-bricks.ts +++ b/annotation-interface/database/helpers/resolve-bricks.ts @@ -1,4 +1,8 @@ -import { pharMeLanguage, SupportedLanguage } from '../../common/constants'; +import { + BrickUsage, + pharMeLanguage, + SupportedLanguage, +} from '../../common/constants'; import { ServerGuidelineOverview, ServerMedication, @@ -9,12 +13,22 @@ import { ITextBrick } from '../models/TextBrick'; import { translationsToMap } from './brick-translations'; import { MongooseId, OptionalId } from './types'; -export const medicationBrickPlaceholders = ['drug-name'] as const; -export const allBrickPlaceholders = [ +const medicationBrickPlaceholders = ['drug-name'] as const; +const allBrickPlaceholders = [ ...medicationBrickPlaceholders, 'gene-symbol', 'gene-result', ] as const; +export const placeHoldersForBrick = (category: BrickUsage): string[] => { + switch (category) { + case 'Drug class': + case 'Drug indication': + return [...medicationBrickPlaceholders]; + case 'Implication': + case 'Recommendation': + return [...allBrickPlaceholders]; + } +}; type BrickPlaceholderValues = { [Property in typeof allBrickPlaceholders[number]]?: string; };