Поиск и рендер выделенных элементов в React

Пример того, что у меня сейчас:

import React, {useState} from 'react'
import {Badge, Button} from 'react-bootstrap'
import axios from 'axios'

function Skills(props) {
  const [skills, setSkills] = useState()
  const JSONdata = [{"id":1,"name":"Первый"},{"id":2,"name":"Второй"},{"id":3,"name":"Третий"},{"id":4,"name":"Четвертый"},{"id":5,"name":"Пятый"}]

  const fetchData = async () => {
    // Тут идет запрос на сервер и получение данных JSONdata
    setSkills(JSONdata)
  }

  let selected = []

  const addToSelected = (skill) => {
    selected.push(skill.name, ' ')
  }

  return (
    <div className='sign-up-wrapper'>
      <div className='sign-up-title'>Расскажите о ваших навыках</div>

      <div>
        <button className="fetch-button" onClick={fetchData}>
          Fetch Data
        </button>
      </div>

      <input type="text"/>

      <ul className='ml-4'>{skills &&
      skills.map((skill) => {
 if(skill.name.toLowerCase().search(document.querySelector('input').value.toLowerCase())!== -1) {
          return (
            <li key={skill.id} className='skill' onClick={addToSelected(skill)}><Badge pill variant='secondary'>{skill.name}</Badge></li>
          );
        }
      })}</ul>

      <div className='sign-up-title'>Выбранные навыки</div>

      <ul className='ml-4'>{selected && selected.map((skill) => {
        return (
          <li key={skill.id} className='skill'><Badge pill variant='warning'>{skill.name}</Badge></li>
        )
      })}</ul>

    </div>
  )
}

Как должно выглядеть: 1

Нужно чтобы происходил динамический рендер навыков с использованием поиска. По нажатию на каждый из навыков он должен добавляться в выбранные навыки. А по нажатию на него же, но в выбранных навыках - должен от туда удаляться.

Приложил тот код, который у меня сейчас. Знаю, что там все плохо, но что вышло... Буду благодарен за любую помощь!


Ответы (0 шт):