Створити компонент React - Multiselect
Створити адаптивний компонент React - Multiselect з пошуком з особливими вимогами до адаптивності
Вихідні дані для наповнення списку компоненти:
Країна (Це група/батьків)
let countryList = [
{id: 1, name: 'Єгипет'},
{id: 2, name: 'Туреччина'}
];
Курорти (Це вкладений в групу елемент/діти)
let cityLists = [
{id: 4, name: 'Хургада', country: 1},
{id: 5, name: 'Шарм-Єль-Шейх', country: 1},
{id: 6, name: 'Аланья', country: 2},
{id: 7, name: 'Кемер', country: 2},
{id: 8, name: 'Мармарис', country: 2},
{id: 8, name: 'Даламан', country: 2},
];
Поведение компоненти на широких екранах
Компонента буде вписана в якусь форму пошуку за допомогою React. Тому повинна бути повністю незалежною від оточення.
Ось так буде виглядати форма пошуку на широких екранах

Опис роботи компоненти на широкому екрані
1. Стартовий зовнішній вигляд при відкритті сторінки

Кликаємо мишкою в рядок пошуку і під компонентом відкривається форма вибору країни або курорту
назвемо ЦЮ ФОРМУ WRAPPER-DIV

Ця ж форма відкривається, якщо ми клікаємо мишкою на кнопку розкриття списку
т.е.

Зліва і справа смуги прокрутки, що дозволяють прокручувати вміст
т.е. під вікном пошуку відкривається певний <div> що складається з двох інших наповнених списками
ul-->li, причому правий забезпечений checkbox-ами
Поведение випадаючої форми на широкому екрані вкрай просте
Клік на країні в лівій половині (на Країні) - змінюється вміст правої сторони (вміст ДИВа з курортами)
Ось кілька прикладів відображення поведінки цієї "форми"


Кожен "правий" список починається з чекбокса "Всі курорти", клік на який вибирає ВСІ в правому списку або навпаки, знімає виділення
По натисканню на кнопку OK ми отримуємо об'єкт з кодом країни і списком вибраних курортів
[
{"country": 1}
{"city": [4,5]}
]
"country": - число, код країни. Може бути вибрана тільки одна країна!
"city" - масив, через кому. Може бути вибрано кілька курортів в межах вибраної країни
При зміні країни - список курортів автоматично замінюється списком курортів цієї країни
Якщо зняти галочку "Всі курорти" в правому списку і натиснути ОК на виході отримаємо
[
{"country": 1}
{"city": [undefined]}
]
Кнопка відкриття списку пошуку працює аналогічно кнопці OK
Це означає, що якщо ми здійснили вибір курортів або країни, то для запам'ятовування вибору нам достатньо або натиснути ОК або просто закрити список, клікнувши для цього де-небудь
1.1 Компонента дозволяє здійснювати пошук всередині себе. Пошук здійснюється відразу як по країні, так і по курорту
При цьому вивід результатів пошуку виглядає наступним чином
якщо не знайдена країна - то виводиться відразу список знайдених курортів

Якщо ж знайдена країна, то вона виводиться в списку першою в групі КРАЇНИ.
А нижче, списком групи КУРОРТИ виводяться підпорядковані курорти

Клік на знайдену країну відкриває вже знайому нам форму в якій ми можемо вибрати курорти

Клік на курорт одразу формує результат і закриває форму вибору
Результат відображення в вікні пошуку після проведених маніпуляцій наступний
Країна, n курорт(ів)
Наприклад, якщо я вибрав Хургаду (Це Єгипет), то виглядає це так

ДЛЯ МОБІЛЬНИХ
Стартовий вигляд компоненти

при кліку на компоненту
відкривається модальний WRAPER-DIV НА ВЕСЬ ЕКРАН МОБІЛЬНОГО

КЛІК НА КРАЇНУ І ВІДКРИВАЄТЬСЯ div З чекбоксами курортів

Внизу кнопка ОК перетворюється на дві

Також з'являється зверху панель КУДИ з кнопкою - хрестиком
Кнопка хрестик, кнопка Відміна і кнопка Застосувати виконують одну й ту ж функцію - запам'ятати те, що вибрано і закрити модальне вікно, не забувши при цьому зробити розрахунок кількості вибраних курортів
Пошук працює в мобільному додатку так
Ввожу якийсь текст і допустимо знайдена країна

Знайдені країни знаходяться в групі "КРАЇНИ". Клікнути на групу не можна - вона неактивна. Можна клікнути тільки на назву країни. Кожен курорт, через кому має назву своєї країни
В цьому випадку відкривається це вікно

Клік на курорт і ми отримуємо результат

Модальні вікна закриваються, а в змінну потрапляє результат нашого вибору
[
{"country": 1}
{"city": [4]}
]
Вимог до CSS щодо шрифтів і т.д. немає
Головна вимога це функціонал компоненти.
ВАЖЛИВО при розробці не називати компоненту App або Root
Пропси
countryList і cityLists розмістити в файлах json
вивід компоненти через default export
Відгук замовника про співпрацю з Інною Тимошенко
Створити компонент React - MultiselectЧудовий виконавець! Рекомендую!
Відповідальна, спокійна, чудово розуміє, що потрібно замовнику! ТЗ розуміє з півоберту!
Дуже чемна та відповідальна! Вперше зустрічаю такого фрілансера з таким рівнем знань та швидкістю роботи!
Відгук фрилансера про співпрацю з Дмитриєм Туркиним
Створити компонент React - MultiselectКомфортно працювати із Дмитром. Чіткий і докладний опис завдання, швидко реагує на будь-які питання, приємний у спілкуванні. Рекомендую!
-
310 Якісно виконую реалізацію пошуку. Робила пошук на React, прикріплюю нижче.
https://freelancehunt.com/showcase/work/sayt-full-stack-reactjs-node-mongodb-express/1889361.html
-
7134 13 0 Зроблю без проблем у найкращому вигляді за пару годин, буду радий відповіді
-
610 9 0 Можу інтегрувати https://ant.design/components/cascader#cascader-demo-multiple
або https://cascader-react-component.vercel.app/demo/multiple
Виглядає як те що вам потрібно.
Напишіть в лс
Актуальні фриланс-проєкти в категорії Javascript та Typescript
Шукаю досвідченого Full Stack розробника для створення SaaS-сервісу для інтернет-магазинів.Ідея сервісу: Клієнт завантажує посилання на свій товарний фід (XML або CSV). Сервіс автоматично отримує товари, бере їхні фотографії та створює нові рекламні зображення за готовими шаблонами: ціна, знижка, логотип, акційні плашки тощо. Також у сервісі має бути простий редактор… Javascript та Typescript, Веб-програмування ∙ 2 дні 3 години тому ∙ 83 ставки |
Розробка WebGL/Three.js сцени з генерацією та експортом 3D (снапшот) з анімованого шейдераОпис об'єкта:Проект являє собою дизайнерський стіл, виконаний у формі реалістичного, глибокого водовороту (центральна воронка, яка плавно переходить з широкої горизонтальної стільниці в тонку витончену ніжку). Суть задачі:Потрібен WebGL / Creative Coding розробник для створення… Javascript та Typescript, Веб-програмування ∙ 2 дні 23 години тому ∙ 30 ставок |
Підтримка та розвиток сайту клінінгової компанії
906 UAH
Шукаю веб-розробника / вебмайстра для довгострокової підтримки та розвитку сайту клінінгової компанії. Сайт: https://donely.ca Про проєкт DoneLy Home Services — компанія з надання послуг прибирання в Канаді, яка активно розвивається та розширює географію роботи. Шукаю… Javascript та Typescript, Веб-програмування ∙ 5 днів 1 година тому ∙ 64 ставки |
Розробка сайту по ТЗ на FramerПотрібно зробити сайт по цим параметрам що в тз https://docs.google.com/document/d/1ODO2C9Krb4AaMiJz9wfbNzWlAyA2FwCCHL8r0biajUY/edit?usp=sharing Називайте реальний рейт на основі цього дизайну HTML та CSS верстання, Javascript та Typescript ∙ 6 днів 2 години тому ∙ 29 ставок |
Розробка інтерактивної карти Palworld для сайтуПотрібно розробити інтерактивну карту Palworld за прикладом: https://palworld.gg/map Нам потрібна не просто статична картинка, а повноцінна інтерактивна карта, де користувач може дивитися локації, вмикати / вимикати категорії об’єктів, шукати потрібні точки та взаємодіяти з… HTML та CSS верстання, Javascript та Typescript ∙ 7 днів 17 годин тому ∙ 36 ставок |