File tree Expand file tree Collapse file tree
website/src/pages/documents Expand file tree Collapse file tree Original file line number Diff line number Diff 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"
Original file line number Diff line number Diff 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
1516export 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 ) }
You can’t perform that action at this time.
0 commit comments