Skip to content

Commit 0f5e462

Browse files
committed
Added free keyword text area
1 parent 5d881f7 commit 0f5e462

2 files changed

Lines changed: 43 additions & 2 deletions

File tree

website/src/pages/documents/edit-document-modal.tsx

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ export const EditDocumentModal: React.FC<EditDocumentModalProps> = ({
167167

168168
const [creator, setCreator] = useState(documentMetadata.creators ?? [])
169169
const [keywords, setKeywords] = useState(documentMetadata.keywords ?? [])
170+
const [freeKeyword, setFreeKeyword] = useState("")
170171
const [languages, setLanguages] = useState(documentMetadata.languages ?? [])
171172
const [spatialCoverage, setSpatialCoverage] = useState(
172173
documentMetadata.spatialCoverage ?? []
@@ -792,8 +793,45 @@ export const EditDocumentModal: React.FC<EditDocumentModalProps> = ({
792793
newTags={newKeywords}
793794
onAdd={(tagName) => addKeyword(tagName)}
794795
onRemove={removeKeyword}
795-
addButtonLabel="Add Keyword"
796-
/>
796+
addButtonLabel="Add Pre-existing Keywords"
797+
>
798+
{isEditing && (
799+
<div
800+
style={{
801+
display: "flex",
802+
gap: "8px",
803+
marginBottom: "12px",
804+
alignItems: "center",
805+
}}
806+
>
807+
<input
808+
type="text"
809+
className={styles.input}
810+
placeholder="Enter keyword..."
811+
value={freeKeyword}
812+
onChange={(e) => setFreeKeyword(e.target.value)}
813+
onKeyDown={(e) => {
814+
if (e.key === "Enter" && freeKeyword.trim()) {
815+
addKeyword(freeKeyword.trim())
816+
setFreeKeyword("")
817+
}
818+
}}
819+
/>
820+
<button
821+
type="button"
822+
className={styles.addTagButton}
823+
onClick={() => {
824+
if (freeKeyword.trim()) {
825+
addKeyword(freeKeyword.trim())
826+
setFreeKeyword("")
827+
}
828+
}}
829+
>
830+
Add Keyword
831+
</button>
832+
</div>
833+
)}
834+
</TagSelector>
797835

798836
<TagSelector
799837
label="Subject Headings"

website/src/pages/documents/tag-selector.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ interface TagSelectorProps {
1010
onRemove?: (index: number) => void
1111
addButtonLabel: string
1212
customForm?: React.ReactNode
13+
children?: React.ReactNode
1314
}
1415

1516
export const TagSelector: React.FC<TagSelectorProps> = ({
@@ -21,6 +22,7 @@ export const TagSelector: React.FC<TagSelectorProps> = ({
2122
onRemove,
2223
addButtonLabel,
2324
customForm,
25+
children,
2426
}) => {
2527
const [showDropdown, setShowDropdown] = useState(false)
2628

@@ -50,6 +52,7 @@ export const TagSelector: React.FC<TagSelectorProps> = ({
5052
</div>
5153

5254
<div className={styles.tagDropdownContainer}>
55+
{children}
5356
<button
5457
type="button"
5558
onClick={() => setShowDropdown(!showDropdown)}

0 commit comments

Comments
 (0)