feat(attributes): add "Other" option support for select and multiselect attributes#331
feat(attributes): add "Other" option support for select and multiselect attributes#331moshenetsb wants to merge 13 commits into
Conversation
|
The preview deployment for Eventownik Frontend Preview is ready. 🟢 Open Preview | Open Build Logs | Open Application Logs Last updated at: 2026-04-23 15:22:14 CET |
57f6cfc to
6c239f6
Compare
There was a problem hiding this comment.
Tak jak to opisałem w kolejnych komentarzach, aktualna implementacja nie działa prawidłowo w przypadku edycji formularza drugiego etapu. Pamiętaj żeby dogłębnie potestować nie tylko dla formularza rejestracyjnego.
Najwięcej problemów jest z multiselectem. Trzeba pamiętać o tym, że na backendzie wartość multiselecta jest postaci stringa, gdzie wybrane opcje są oddzielone przecinkami. Nawet teraz na prodzie nie działa edycja multiselectów swoją drogą xd
Ze zwykłym selectem jest prościej, nie działa jedynie przywracanie tego że jest wybrane "Inne" i wraz z tym wartość tego inne. Fix ze state'ami w komentarzu do attribute-input.tsx to naprawia bez wprowadzania dodatkowych błędów (przynajmniej wg. tego jak testowałem
).
…ultiselect attributes
b582658 to
4ef37fa
Compare
maciejkrol18
left a comment
There was a problem hiding this comment.
Biorąc pod uwagę aktualne limitacje backendu sama implementacja dobrze zrobiona, aczkolwiek widać że jest to całkiem fragile rozwiązanie. Po namysłach czekamy aż na backendzie wartości multiselecta zostaną zrefaktorowane na jsonowy array zamiast wartości w stringu oddzielone przecinkami. W związku z tym, ten pr jest na razie wstrzymany zanim tam tego nie wprowadzą - jak już to zrobią, można tu wznowić pracę
Tłumaczenia
Na tym branchu nie róbmy tłumaczeń niezwiązanych z taskiem. Cofnij zmiany z commitów 9b837f0 i c9ead54. Przypiszę cię do taska z przetłumaczeniem dashboarda i będziesz mógł to tam na branch przerzucić. Możesz popróbować jakieś sztuczki z git stashem żeby to zrobić
| if (exists) { | ||
| toast({ | ||
| variant: "default", | ||
| title: "Duplikat", | ||
| description: "Ta opcja znajduje się już na liście.", | ||
| }); |
| const addOption = () => { | ||
| const trimmedValue = optionsInput.trim(); | ||
|
|
||
| if (trimmedValue.startsWith("other: ")) { |
There was a problem hiding this comment.
trimmedValue jest trimmed - ma usunięte whitespaces wszystkie więc ten check nie ma sensu, bo jak wpiszemy other: to i tak do trimmedValue trafi other:.
There was a problem hiding this comment.
Ta zmiana ma sens np. dla other:jakiś tekst (pozwala na mniejsze ograniczenia)
9b837f0 to
248da9e
Compare
Close #321