Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wspólny stan panelu filtrującego dla podwidoków dotyczących przedmiotów #1645 #1678

Open
wants to merge 7 commits into
base: master-dev
Choose a base branch
from

Conversation

moojek
Copy link
Collaborator

@moojek moojek commented Apr 3, 2024

No description provided.

@moojek
Copy link
Collaborator Author

moojek commented Apr 3, 2024

@lgpawel
Nie wiem czy metodologia z 'draft pull request' jest odpowiednia, ale z racji mojego braku doświadczenia w używanych w projekcie technologiach chciałem najpierw się dowiedzieć czy kierunek w którym poszedłem ma sens.
Opis tego co zrobiłem:

  • podążając za wspomnianymi przez pana w komentarzu zmianami Trwałe filtry wyszukiwania #1129 (dokładniej Zachowywanie filtrów przy zmianie semestru na stronie Przedmioty #1124) dodałem do linków w liście przedmiotów klasę 'semester-link'
  • nadal wzorując się na zmianach ze wspomianego PR dodałem funkcję dodającą do linków query stringi zawierające informacje o użytych filtrach
  • użyłem tej funkcji w tych samych miejscach :) co analogiczna funkcja dla listy semestrów; na ten moment już widać było rezultaty natomiast...
  • ...natomiast linki nie były edytowane kiedy w sekwencji zaznaczeń/odznaczeń filtrów i przejść między widokami na liście pojawił się przedmiot, którego wcześniej nie było - wtedy w funkcji w której subskrybujemy się na zmianę filtra faktycznie aktualizujemy visibleCourses natomiast w widoku pojawią się one zaktualizowane dopiero po zakończeniu jej wywołania, a więc to co zrobimy po aktualizacji, czyli wywołanie updateCoursesLinks() będzie aktualizowało linki tylko przedmiotom ze starego stanu filtrów
  • stąd dodane przeze mnie await this.$nextTick(); które czeka następny update DOM - to moja największa wątpliwość, czy to dobry pomysł

@moojek moojek requested a review from lgpawel April 3, 2024 22:22
@moojek moojek marked this pull request as ready for review April 12, 2024 15:03
@moojek
Copy link
Collaborator Author

moojek commented Apr 12, 2024

@lgpawel W nawiązaniu do rozmowy w trakcie spotkania: z dokumentacji metody mounted, scrollując nieco w dół można dotrzeć do metody updated, gdzie w akapicie Details jest umieszczony komentarz i odnośnik do użytej przeze mnie metody nextTick (prawie, bo będąc ścisłym jest to this.$nextTick()).
Wyłączyłem również PRowi tryb draft.

EDIT: formatting

@lgpawel
Copy link
Contributor

lgpawel commented May 11, 2024

Dzięki za opis mechanizmu, faktycznie jest pewnym utrudnieniem fakt, że linki pojawiają się i znikają. Ale może schludniej byłoby to obejść inaczej – mianowicie skoro znane są wszystkie adresy potencjalnie pojawiające się w tych linkach, bo siedzą w (ładowanym z JSONa w źródle strony) obiekcie, z którego korzysta przede wszystkim panel filtrów, to może można byłoby modyfikować je (także) w tym obiekcie? Oczywiście mam nadzieję, że da się to wykonać w takim momencie, żeby osobne modyfikowanie adresów w linkach nie było potrzebne, podobnie jak przetwarzanie asynchroniczne.

@moojek
Copy link
Collaborator Author

moojek commented Jun 18, 2024

Podążając za uwagami z któregoś z dawnych spotkań, zmieniłem podejście do problemu. Na zajęciach proponowane były dwa rozwiązania, zdecydowałem się użyć feature'a Vue Conditional Rendering. Próbowałem użyć v-show, o którym to właśnie zdaje się rozmawialiśmy na spotkaniu, ale ustawiany wtedy przez Vue styl display: none; był potem nadpisywany przez klasę d-block przez co funkcjonalność nie działała, więc za sugestią z vuejs/vue#1388 zdecydowałem się na użycie v-if.

@moojek
Copy link
Collaborator Author

moojek commented Jun 29, 2024

Dodane zmiany są w związku z rozmową na Slacku, z której wynikło, że te poprzednie były kompletnie bezużyteczne 🥲.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Wspólny stan panelu filtrującego dla podwidoków dotyczących przedmiotów
2 participants