Skip to content

Feature/app setting panel notifications#43

Open
pavlovskakristina wants to merge 17 commits intodevfrom
feature/app-setting-panel--notifications
Open

Feature/app setting panel notifications#43
pavlovskakristina wants to merge 17 commits intodevfrom
feature/app-setting-panel--notifications

Conversation

@pavlovskakristina
Copy link
Copy Markdown
Member

@pavlovskakristina pavlovskakristina commented Apr 1, 2026

Opis

Dodano ekran ustawień powiadomień (Powiadomienia.tsx) oraz konfigurację powiadomień (notificationConfig.ts).

Ekran umożliwia użytkownikowi włączanie i wyłączanie poszczególnych typów powiadomień aplikacji. Preferencje są przechowywane w cookies (ważne przez 365 dni), dzięki czemu wybory użytkownika są zachowywane między sesjami.

Dodane powiadomienia:

  • Cykliczne powiadomienie ⏰
  • Czas na przerwę! ☕
  • Czas na ćwiczenie! 🔵
  • Zadbaj o nawodnienie! 💧

Powiązane zgłoszenie (Issue)

BRAK

Motywacja i kontekst

Użytkownicy potrzebują możliwości personalizacji powiadomień aplikacji – np. wyłączenia tych, które im nie odpowiadają. Ta zmiana wprowadza dedykowany ekran ustawień dostępny z poziomu ekranu Ustawienia, z intuicyjnym interfejsem toggle dla każdego typu powiadomienia.

Jak zostało to przetestowane?

  • Ręczne testy przełączania powiadomień (toggle on/off)
  • Weryfikacja zapisu i odczytu preferencji z cookies po odświeżeniu strony
  • Weryfikacja obsługi błędów przy uszkodzonych/nieprawidłowych danych w cookies (fallback do domyślnych ustawień)
  • Sprawdzenie poprawności nawigacji (powrót do ekranu Ustawienia)

Zrzuty ekranu (jeśli dotyczy):

Rodzaje zmian

  • Naprawa błędu (zmiana niełamiąca kompatybilności, która naprawia problem)
  • Nowa funkcja (zmiana niełamiąca kompatybilności, która dodaje funkcjonalność)
  • Zmiana łamiąca kompatybilność (naprawa lub funkcja, która spowodowałaby zmianę istniejącej funkcjonalności)

Lista kontrolna:

  • Mój kod jest zgodny ze stylem kodu tego projektu.
  • Moja zmiana wymaga zmiany w dokumentacji.
  • Zaktualizowałam odpowiednio dokumentację.

Copy link
Copy Markdown
Member

@xEdziu xEdziu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ogólnie troszkę rzeczy trzeba przemyśleć i pozmieniać. Też zauważyłem, że teraz powiadomienia się wcale nie wysyłają "w tle" - czyli nie dostaję

Image

żadnego powiadomienia mając to włączone i działające w tle, więc trochę też nie można tego sprawdzić. W razie problemów skontaktowałbym się z @tobiaszrolla który zajmował się timerami, powiadomieniami i Push API

Comment thread src/hooks/useNotifications.ts Outdated
@@ -1,11 +1,15 @@
import { useState } from "react";
import Cookies from "js-cookie";
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nie jestem pewny, czy chcemy całą nową bibliotekę do ciasteczek, jak mam gotowe natywne rozwiązania: https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Cookies

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Z tego co rozumiem to jest tylko setting tego, co ma być wyświetlane w tej podstronie?
  2. Tworzysz swój interface AppNotificationConfig - ale już istnieje coś bardzo podobnego: src/hooks/useTimeNotification.ts
  3. To po prostu są na razie wyłączniki, które tylko zmieniają i przechowują stan :/

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hej
notificationConfig.ts to współdzielona konfiguracja dla całej aplikacji.
NOTIFICATIONS jest używane w Powiadomienia.tsx do renderowania listy ( czyli to miejsce tak naprawdę odpowiada za to, co widzi użytkownik w powiadomieniach). 
A NOTIFICATION_TITLE_TO_ID w useNotifications.ts do sprawdzania preferencji przed wysłaniem powiadomienia.
Gdybym dała to do useTimeNotification.ts to najprawdopodobniej pojawiłby się błąd. Bo useTimeNotification.ts odpowiada za obliczanie czasu, a nie za sprawdzanie preferencji użytkownika. (czyli plik Powiadomienia.tsx musiałby wtedy importować konfigurację z hooka timera)

Comment thread src/pages/Powiadomienia.tsx Outdated
Comment on lines +107 to +109
<div className="mt-auto mb-6 text-gray-400 text-sm text-center px-4">
Powiadomienia zostały włączone
</div>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Czy tego jakoś specjalnie potrzebujemy? Wydaje mi się, że lepiej byłoby gdzieś tutaj na tej stronie wykrywać, czy mamy dostęp do Push API, a jak nie, zamiast całych ustawień wyświetlać przycisk, który uruchomiłby prompta o zgodę na powiadomienia

Comment thread src/pages/footer_Ustawienia.tsx Outdated

{/* Powiadomienia */}
<Link
to="/Powiadomienia"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trzymajmy się raczej wszędzie podobnej konwencji i róbmy /to małymi literami - powiadomienia

@xEdziu xEdziu self-requested a review April 16, 2026 17:21
@xEdziu
Copy link
Copy Markdown
Member

xEdziu commented Apr 17, 2026

@pavlovskakristina proszę o pinga tutaj w komentarzach jak będzie gotowe do sprawdzania

@pavlovskakristina
Copy link
Copy Markdown
Member Author

@pavlovskakristina proszę o pinga tutaj w komentarzach jak będzie gotowe do sprawdzania

ping @xEdziu

Copy link
Copy Markdown
Member

@xEdziu xEdziu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opisalem tez problemy na discordzie na pv - oraz w powiadomieniach z push api ze sprawdzenia cookies nie mam tytulu skad to powiadomienie i loga algovisusa :/

Comment thread package-lock.json Outdated
"dependencies": {
"@radix-ui/react-slot": "^1.2.4",
"@tailwindcss/vite": "^4.1.18",
"@types/js-cookie": "^3.0.6",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bardzo prosze o odinstalowanie paczki jscookie poprzez npm

@pavlovskakristina
Copy link
Copy Markdown
Member Author

Opisalem tez problemy na discordzie na pv - oraz w powiadomieniach z push api ze sprawdzenia cookies nie mam tytulu skad to powiadomienie i loga algovisusa :/

Zrzut ekranu 2026-04-19 o 01 41 51

Dodałam zródło powiadomienia, na razie bez logo :<<

- dodano mozliwosc przetestowania tego w TEST PUSH API
@pavlovskakristina
Copy link
Copy Markdown
Member Author

ping @xEdziu

(gotowe do sprawdzenia)

@xEdziu
Copy link
Copy Markdown
Member

xEdziu commented Apr 19, 2026

Dobra, @pavlovskakristina @KBruy patrząc na to świeżym i trzeźwym okiem - brakuje mi chyba opcji ustawienia customowych czasów tych powiadomień w ustawieniach - co o tym sądzicie?

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.

2 participants