Commit Graph

609 Commits

Author SHA1 Message Date
stanig2106 35d0578e33 fix: persist OIDC token in localStorage instead of sessionStorage
Bug: opening calendar in a new browser tab forced a re-login every time,
even when the user was authenticated in another tab.

Root cause: tokenSet/userData/redirectState were stored in sessionStorage,
which is per-tab by design. New tab → empty sessionStorage → app
redirects to OIDC. With Dex's password-DB connector (no IdP-side session
cookie), Dex re-prompts for credentials.

Mail (tmail-flutter) has the same OIDC flow but persists tokens in
IndexedDB (Hive box `tokenoidccache`) which IS shared across tabs —
hence mail SSO worked but calendar didn't.

Fix: replace sessionStorage with localStorage for the auth-related keys
(tokenSet, userData, redirectState). localStorage is shared across tabs
of the same origin. Other sessionStorage usages (e.g. eventUpdateModalReopen)
are unchanged — they are genuinely per-tab.

Files touched:
- src/features/User/useInitializeApp.ts (load + setup redirect state)
- src/features/User/LoginCallback.tsx (save tokens after callback,
  read pending redirectState, removeItem on completion)
- src/utils/apiUtils.ts (write redirectState during 401-driven SSO redirect)
- src/components/Calendar/hooks/useUtilMenus.ts (logout cleanup)

Verified: open clean tab → login alice → open another tab on
calendar.workavia.local → loaded silently with avatar visible, no
login form prompted.
v0.1.0-workavia.2
2026-04-29 21:32:32 +02:00
stanig2106 faefd31ac3 fix: ignore "not found in store" race on boot in getCalendarDetailAsync.rejected
On hard reload, useCalendarLoader dispatches getCalendarDetailAsync(calId)
for selected calendars (cached in localStorage) BEFORE getCalendarsListAsync
has fulfilled. The detail thunk sees an empty state.calendars.list and
rejects with "Calendar X not found in store". The reject handler then sets
state.calendars.error, and HandleLogin redirects to /error.

Result: ~50% of reloads land on /error.

Treat this specific race-condition error like AbortError: ignore it. The
detail fetch is naturally re-issued by useCalendarLoader once the list is
loaded, so no functional regression.
v0.1.0-workavia.1
2026-04-29 18:38:33 +02:00
stanig2106 0089fba30d rebrand: replace Twake logos with Workavia wordmark
- src/static/header-logo.svg: rebuild with SVG <text> "Workavia" (black) +
  "Calendar" (orange gradient), keeping the original calendar icon
  Style matches Workavia Mail logo (brand name in black, app suffix in color)
- src/static/twake-workplace.svg: simplify to centered "Workavia" text
- Loading.tsx alt: "twake workplace" -> "Workavia"
2026-04-29 18:26:27 +02:00
stanig2106 fe15fc076a rebrand: Workavia Calendar
User-facing strings:
- "Twake Calendar" -> "Workavia Calendar" in 4 locales (en/fr/ru/vi)
- public/index.html <title>
- public/manifest.appdata (name + short_name)
- VALARM description string (sent to participants in iCal)

Defaults / neutralization:
- Video conference fallback URL: meet.linagora.com -> meet.jit.si
  (still overridable via window.VIDEO_CONFERENCE_BASE_URL or .env.js)

Kept intact (design system / non user-facing):
- @linagora/twake-mui package + TwakeMuiThemeProvider class
  (primary colors preserved per requirement)
- public/calendar.svg, app-*.svg icons (no embedded text)
2026-04-29 18:18:34 +02:00
Camille Moussu d16e7941ad [#805] fix filter end adornment alignments (#853)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-04-29 18:01:54 +02:00
Camille Moussu 1ceaefa7bc [#817] removed deprecated border on sidebar and fix small visual bug cropping the bottom of the desktop sidebar (#852)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-04-29 17:59:53 +02:00
lethemanh c429306e77 #843 missing back button in settings on mobile (#849)
Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-04-29 17:38:47 +02:00
Camille Moussu d66bc59967 [#692] split search result page to mobile and desktop (#823)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-04-29 09:55:17 +02:00
lethemanh 29d82e5ade #845 set dynamic name for edit tooltip 2026-04-29 09:53:34 +02:00
Benoit TELLIER 2f849b5323 ISSUE-845 Edit in XXX calendar 2026-04-29 09:53:34 +02:00
lethemanh c910f3e3a9 #693 open calendar menu on mobile (#842)
Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-04-28 16:09:21 +02:00
Camille Moussu 234b4c3ae8 [#691] changed searchbar in menubar to mobile searchbar (#822)
* [#691] changed searchbar in menubar to mobile searchbar
* [#691] add filters to results page for mobile
* [#691] added filter for organizers and attendees
2026-04-28 15:07:45 +02:00
vttran 00e00594a2 chore(events): update VALARM description branding (#841)
Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-04-28 09:56:38 +02:00
Benoit TELLIER 191296346e ISSUE-838 Keyboard navigation: people search + enter should not open create modal (#839) 2026-04-28 07:57:22 +02:00
Benoit TELLIER 0f69288355 [FIX] Handle race if user search is canceled (#835) 2026-04-27 15:05:42 +02:00
Benoit TELLIER b1cf05fcf2 ISSUE-836 Duplicate: carry over source calendar if writable (#837) 2026-04-27 15:05:29 +02:00
lethemanh 53342d808f #809 extract event actions component (#831)
Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-04-27 10:32:44 +02:00
lethemanh 4179c274fc #623 handle white page crash (#824)
Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-04-27 10:27:15 +02:00
Benoit TELLIER dffb305886 ISSUE-833 Autofocus better when working with calendars (#834) 2026-04-27 10:26:15 +02:00
Benoit TELLIER 6b086658eb [ENHANCEMENT] Split PRs from main docker images (#832) 2026-04-25 22:27:23 +02:00
lethemanh 33f7550792 #820 add missing react import in auto focus title hook 2026-04-24 12:22:08 +02:00
lethemanh 338fd91194 #820 add missing react import in visibility field 2026-04-24 12:22:08 +02:00
lethemanh a0fe0924f1 #820 fix typo of video conference field in expanded mode 2026-04-24 12:22:08 +02:00
lethemanh 63618501e7 #820 rename the file EventFormFieldsExpaned.tsx to EventFormFieldsExpanded.tsx 2026-04-24 12:22:08 +02:00
lethemanh 52fc0b305f #820 restore hasEndDateChanged in the summary visibility logic 2026-04-24 12:22:08 +02:00
lethemanh 7f78f70808 #820 guard handleRepeatToggle against an invalid start 2026-04-24 12:22:08 +02:00
lethemanh 00286b88ea #827 fix location field layout (#828)
Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-04-24 12:17:59 +02:00
Benoit TELLIER 138cfd7f4e ISSUE-825 Improve refresh without WS (#826) 2026-04-24 10:05:42 +02:00
lethemanh 126fac845b Merge pull request #818 from lethemanh/698-personal-settings
#698 personal settings
2026-04-22 16:37:24 +07:00
lethemanh 07efb8ce51 #698 personal settings 2026-04-22 16:15:34 +07:00
Camille Moussu 7f922cbea1 [#741] separation of base eventAPI to EventDao and eventApi (#812) 2026-04-21 11:20:44 +02:00
lethemanh 1a2e538d04 Merge pull request #807 from lethemanh/806-resolve-double-tab-to-select-timezone-issue
#806 resolve double tab to select timezone-issue
2026-04-21 15:06:57 +07:00
lethemanh 805a63b585 #808 extract event form field component (#815)
Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
2026-04-21 09:39:41 +02:00
lethemanh c8cab5d55d #756 make calendar easier to swipe 2026-04-20 17:21:56 +02:00
lethemanh fd2282a65f #756 improve swipe gesture 2026-04-20 17:21:56 +02:00
lethemanh 3d07008a8c #756 swipe gesture on calendar 2026-04-20 17:21:56 +02:00
Camille Moussu b481eefed0 [#769] updated regex to properly handle <> brackets (#792) 2026-04-20 12:33:36 +02:00
Camille Moussu 2df87b9b9c [#742] handle desktop search overflow properly (#801) 2026-04-20 12:32:26 +02:00
lethemanh 12498f62e5 Merge pull request #775 from lethemanh/765-disable-auto-zoom-in-on-ios
#765 disable auto zoom in on ios
2026-04-20 14:32:51 +07:00
lethemanh 69e0bd741f #765 disable auto zoom in on ios 2026-04-20 10:28:24 +07:00
lethemanh d8c35c5c48 #806 resolve double tab to select timezone-issue 2026-04-18 10:45:31 +07:00
lethemanh d42fe1ce9f Merge pull request #799 from lethemanh/797-adjust-height-of-timezone-on-open
#797 adjust height of timezone selector when openning on mobile
2026-04-17 17:57:52 +07:00
lethemanh 49e993a3ce Merge pull request #804 from lethemanh/803-adjust-desktop-layout
#803 adjust desktop layout
2026-04-17 16:17:36 +07:00
Camille Moussu 8242651655 [#734] set free busy tooltip to show up only on hover (#802)
Co-authored-by: Camille Moussu <cmoussu@linagora.com>
2026-04-17 09:56:24 +02:00
lethemanh e8ee153671 #803 adjust desktop layout 2026-04-17 11:58:30 +07:00
Camille Moussu 1213c6a350 [#710] adapt time and date pickers to mobile (#781)
* [#710] added custom mobile timePicker

* [#710] custom mobile datepicker
2026-04-16 10:57:35 +02:00
lethemanh 4cf4901f99 Merge pull request #795 from lethemanh/771-numpad-on-number-textfield
#771 numpad on number textfield
2026-04-16 15:41:31 +07:00
lethemanh a44cbd7c36 #797 adjust height of timezone selector when openning on mobile 2026-04-16 15:18:19 +07:00
Camille Moussu 17e86d7832 [#786] added hook to handle tap separatly from slide (#787)
* [#786] fully disable long press

* [#786] added hook to handle tap separatly from slide
2026-04-16 10:12:31 +02:00
lethemanh 98132e98f2 Merge pull request #793 from lethemanh/774-fix-date-time-layout-allday
#774 fix issue of date time layout allday
2026-04-16 14:36:19 +07:00