Commit Graph
100 Commits
Author SHA1 Message Date
Anthony LC 5440146fcd ️(frontend) hide import button on a document
We decided to hide the import button on a
document because it is confusing for the user to
have the possibility to import a document when he
is already in a document. The import button is
now only available on the document list page.
We will add back the button soon, but a import
will create a new sub-document instead.
2026-07-08 10:55:42 +02:00
Anthony LC 6a6154659f 💄(frontend) improve ui/ux before release
Following the recommendations of the design team,
we lightly improved some UI/UX elements to be
more consistent and user-friendly before the
next release.

It includes the following changes:
- add a background to the grid
- add a fadein to the header buttons
- reduce the generic size icon
- add a title to the doc item
2026-07-07 10:57:20 +02:00
Anthony LC c2864378ed 🐛(frontend) fix CTA on move modal on mobile
On some mobile devices, the CTA button on the
move modal was not visible due to a CSS issue.
This commit fixes the issue by adjusting the modal's
layout and ensuring that the CTA buttons are visible.
2026-07-07 10:20:02 +02:00
Anthony LC 6a84430a4f 🔧(dev) make the dev stack domain-agnostic
Keycloak's hostname, its client's redirect/web
origins, and Django's CSRF trusted origins were
hardcoded to localhost, so the dev stack was
only reachable from that exact origin.
It is now possible to run the dev stack depending
what is configured in the env files.
2026-07-06 17:10:55 +02:00
Anthony LC 151d3a8135 🐛(frontend) stop force index redirect when delete doc
Depends the state, after deleted a doc, we were
automatically redirecting to the index page, which is
not always the desired behavior. This change stops
the automatic redirect after deleting a document,
allowing for more flexible navigation based on user
context.
2026-07-06 14:55:03 +02:00
Anthony LC 86e9ef40f1 (e2e) fix regression tests for export
Some regression tests for export were failing.
This commit fixes the issues by updating the pdf
regression files.
2026-07-03 17:42:20 +02:00
Anthony LC 4bd835ac47 (frontend) add Lottie animation to header floating bar
We want to animate the header floating bar with
a Lottie animation. This commit adds the Lottie
dependency and implements the animation in the
HeaderFloatingBar component.
2026-07-03 17:42:20 +02:00
Anthony LC 6a90714c05 📱(frontend) adapt the left panel with to new responsive
We change the way that the left panel is displayed
in mobile and tablet views. Now, the left panel will
be over the content when mobile, and will be displayed
as a side panel when tablet. We simplify the
overall structure of the left panel, and the way
the responsive behavior is handled.
2026-07-03 17:42:20 +02:00
Anthony LC c82ff199f1 ♻️(frontend) replace header by floating header
We replace the header by a floating header, to have more
space for the content and in fine to have more
harmony between the doc and the doc-grid, in mobile view
or not.
The layout have to be adapted, as well the legacy home
page.
2026-07-03 17:42:19 +02:00
Anthony LC d87615506f ♻️(frontend) make the floating bar more generic and reusable
We want to use the floating bar in multiple places, so
we need to make it more generic and reusable.
This commit refactors the floating bar component
and its related components to achieve this goal.
2026-07-03 17:42:03 +02:00
Anthony LC 50b696cba1 (frontend) add a user menu
We are now using the UserMenu component from
the ui-kit. It is a dropdown displaying the user's
name and email, along with a logout button and a
language picker. To fit the design of the user menu,
we adapted the LanguagePicker adn are now using the
ui-kit language picker component.
2026-07-01 17:56:46 +02:00
Anthony LC 3fe8bd5cc0 🐛(frontend) fix waffle positioning
The floating waffle menu is positioned only on the bottom
left of the trigger button, so when positioned
on the bottom left, the floating menu is not visible.
This commit fixes the positioning.

We also added a patch to the ui-kit, so when
the patch is released, we can remove this patch
from the codebase.
2026-06-24 16:21:13 +02:00
Anthony LC cb19a6ee71 🚚(frontend) move Waffle to bottom left
We moved the waffle button to the bottom left inside
the left panel.
This change is part of the new header design.
2026-06-24 16:21:13 +02:00
Anthony LC 9605dc7c90 🐛(frontend) fix service worker causing reload on tab focus
During rolling deploys, multiple replicas serve
different builds of service-worker.js
(each build has a random buildId baked in).
This causes a controllerchange loop: the new SW
activates via skipWaiting, the page reloads, then the
next request may hit an older replica,triggering another
update and another reload — surfacing as a reload
every time the tab becomes visible.

We added a sessionStorage guard so a controllerchange
triggers at most one automatic reload per session; subsequent
flaps between versions are silently ignored, while legitimate
updates still cause a single reload automatically.
2026-06-24 15:40:29 +02:00
Anthony LC 4585fd80a1 (frontend) add create sub-documents button
We added a sub button to create sub-documents
from the New button. This sub button is only visible
when the user is in a document, and it allows them to
create a new document that is a child of the current
document.
2026-06-23 14:26:17 +02:00
Anthony LC 25d47966c0 ♻️(frontend) new create button for docs
New create button for docs.
It is now a link button instead of a pure button,
meaning we can navigate to this new created doc
and open it in another tab by doing ctrl + click.
This new button has a dropdown menu that allows
users to import a docx file or a markdown file.
We removed the old import button.
2026-06-23 14:26:16 +02:00
Anthony LC 3304c12b2c 🔒️(js) fix security warning
Moderate:
- @babel/core
- @opentelemetry/core
- dompurify
- form-data
- js-yaml
- markdown-it
- undici
- ws
2026-06-23 12:17:47 +02:00
Anthony LC b8c2406361 📌(dependencies) pin prosemirror deps
We are pinning the prosemirror dependencies to avoid
conflicts with other versions.
2026-06-23 12:17:47 +02:00
Anthony LC e844929404 ️(frontend) try to improve performance of tree
The tree rerenders crazily, creating performance
issues, especially on big trees. To fix it properly
we will need a big refacto, on the uikit side.
Before doing that, we try to optimize the current
code by memoizing the tree view, and by using the
selected node from the url instead of the one
from the context.
We improve the treeitem link, we can now easily
opening a new tab by doing CTRL+Click.
2026-06-22 17:09:41 +02:00
Anthony LC a63fa17e20 🐛(frontend) fix removed item in the tree
react-arborist's scrollTo calls react-window's scrollToItem, which mutates
the internal scrollOffset state. When navigating to a deep item in a large
tree, this causes all items above the target to be removed from the DOM
(virtualized away), making the tree appear empty above the selected node.
We no-op it to prevent that — the panel's own overflow-y handles scrolling.
2026-06-22 17:09:41 +02:00
Anthony LC 4c3b17a541 (frontend) leave a document feature
When we were visiting a public document, it was part of
our list of documents, and we couldn't leave it.
Now, we can leave a public document, and it will
be removed from our list of documents.
We coupled it with remove access to a document if
you had access to it, and you can also leave a
document without having to pass through the share
modal, which is a better user experience.
2026-06-11 16:49:09 +02:00
Anthony LC 6ce853312f ️(frontend) accessibility improvements on search components
Improve accessibility of search components by adding
appropriate ARIA attributes and enhancing screen reader
compatibility.
2026-06-10 16:51:02 +02:00
Anthony LC 7edbd4efcb 💄(frontend) update search ui to fit the design mockup
The search ui has been updated to fit
the design mockup.
It includes:
- the search feature
- the move doc modal
- the interlinking search part
2026-06-10 16:44:49 +02:00
Anthony LC 359fb42605 (frontend) add top parent on sub docs search
In the search modal, under the sub docs,
we now display the top parent of the doc, to give
more context to the user about the doc they are
looking for.
We refactorize the filters to get more flexibility
and avoid too much props drilling.
2026-06-10 16:44:49 +02:00
Anthony LC 6dc9955d64 (frontend) unauthenticated users can search
Unauthenticated users can now search documents inside
a document depend their permissions on the document.
2026-06-10 11:44:13 +02:00
Anthony LC 87061dd26d 🐛(frontend) fix ui issues
- Fix floating bar z-index to ensure it appears
  under the editor toolbar and suggestion menu
- Add text center to toolip content
2026-06-09 16:38:25 +02:00
Anthony LC f4db774545 👷(CI) remove test-e2e-other-browser job
We don't maintain the test-e2e-other-browser job,
and it often fails due to various reasons.
To avoid unnecessary noise in our CI pipeline, we
will remove this job.

We are adding workflow_dispatch trigger to the e2e-tests
workflow, so that we can still run e2e tests on other
browsers when needed from the Github actions UI.
2026-06-09 15:18:33 +02:00
Anthony LC a43883caf0 🔖(patch) release 5.2.1
Changed:
- 💄(frontend) display emoji button on hover

Fixed:
- 🐛(backend) close thread DB connections to fix test teardown
  OperationalError
- 🐛(frontend) fix crash when orphaned threads
- 🐛(backend) order trashbin response by most recently deleted
- 🐛(backend) stream document content with an async
  iterator under ASGI
- 🐛(frontend) fix long titles in table of content
2026-06-05 13:44:21 +02:00
Anthony LC 8bf30d0ec3 🐛(frontend) fix long titles in table of content
Long title in table of content is were not displayed correctly.
This commit fixes the issue.
2026-06-05 12:42:26 +02:00
Anthony LC 559b73bfc2 💄(frontend) display emoji button on hover
The emoji button is now displayed when hovering
the doc header. We reduced the size as well.
2026-06-04 16:22:47 +02:00
Anthony LC 6e60bb9cb1 🐛(frontend) fix crash when orphaned threads
The app expect threads to always have
comments, but in some cases threads can end up without
comments, which causes crashes. This PR adds a
check to delete orphaned threads without comments
to avoid this issue.
2026-06-04 14:46:12 +02:00
Anthony LC 9633f5f7a0 🔖(patch) release 5.2.0
Added:
- (backend) support creating subdoc from file
- (frontend) comment side panel
- (buildpack) add PaaS deployment support, tested with Scalingo
- 🔧(backend) allow configuring settings
  OIDC_OP_USER_ENDPOINT_FORMAT
- ️(helm) create a dedicated svc and deployment for
  yprovider converter
- (backend) allow to leave a document
- (frontend) add the presenter mode
- 📈(backend) create a utils to capture event with posthog
- 🔧(backend) new setting DOCUMENT_ALL_ENDPOINT_ENABLED

Changed:
- ♻️(backend) allow global search in sub documents
- (backend) add a breadcrumb in the search response
- ♻️(frontend) move doc action buttons to fix toolbar
- ️(frontend) add aria-hidden to decorative avatar SVGs
  in share modal
- 🏗️(frontend) move comments to its own folder feature

Fixed:
- 🐛(docs) run migration 0027 without superuser role
- 🐛(backend) prevent admins/owners from overwriting other
  users comments
- 🐛(y-provider) return empty output when converting empty
  Yjs document
- 🐛(backend) use computed_link_reach in
  handle_onboarding_document
- 🐛(frontend) fix toolbar blocknote hidden
- 🐛(frontend) fix application crashes when using
  GTranslate and zoom
- 🐛(frontend) fix emoji pdf not matching
- 🐛(backend) fix UnorderedObjectListWarning for
  DocumentAskForAccess viewset
2026-06-03 12:09:39 +02:00
Anthony LC 31588ac08d ⬆️(frontend) bump Blocknote to 0.51.4
We bumped the Blocknote editor to version 0.51.4,
which includes several bug fixes and improvements,
particularly 1 bug fix about emoji on the side bar.
2026-06-02 14:31:41 +02:00
Anthony LC 3b7ea3eba7 🏗️(frontend) move comments to its own folder feature
The feature "doc-editor" start to be quiete big,
and the comments related code is quite a lot.
We move all the comments related code to a new
folder "doc-comments" to make the code more
organized and easier to maintain.
2026-06-02 14:24:01 +02:00
Anthony LC 7b3ce3ca98 🐛(frontend) fix toolbar blocknote hidden
The header could hide the formatting bar of the
blocknote editor. This commit improve the z-index
of the header to ensure that the formatting bar
is always visible.
2026-06-02 12:00:58 +02:00
Anthony LC 472cb228cb 🐛(frontend) fix floatingBar skeleton layout
The floatingBar skeleton layout was not correctly
placed in the editor skeleton. It was not every time
above the floating buttons.
2026-06-02 11:32:52 +02:00
Anthony LC 9482783a62 🐛(frontend) don't load left panel in error boundary page
Error boundary page is used when an error occurs
in the application, this page can have states still
set, causing side effects depend the component that
throw the error. In this case, the left panel is
still loaded and try to load the tree, but the
provider is not set, causing a crash error inside
the error boundary page.
We don't need the left panel in the error boundary
page, so we can just not load it to avoid this issue.
2026-06-02 11:32:52 +02:00
Anthony LC 7fc115e4e4 🐛(frontend) fix emoji pdf not matching
The emoji algorithm to find the emoji was not totally
correct, it could choose a bad family of emojis.
The first part of the emoji "code" is
what should be used first to find the "family" of the
emoji, we can then try to find the exact match in
that specific family.
2026-06-02 10:10:45 +02:00
Anthony LC 2ad24384bd 🔒️(js) fix security warning
Moderate:
- ajv CVE-2025-69873
- qs CVE-2026-8723
- protobufjs CVE-2026-45740
- fast-uri CVE-2026-6322
2026-06-01 15:18:26 +02:00
Anthony LC 6361913587 💄(frontend) update icons in left panel header
The icon in the left panel header was updated to
match the new design.
2026-06-01 10:22:29 +02:00
Anthony LC 8104fe0be5 ️(frontend) improve focus behavior of the doc title input
Add wrapper to catch focus.
Benefit:
- The tooltip will show exactly in the middle of
  the title input text
- When the user is click on the right side of the
  doc title, the title get the focus and the cursor,
  which is the expected behavior when editing a title.
2026-06-01 10:22:29 +02:00
Anthony LC ce6dc77222 🚚(frontend) move doc toolbox to Floating Bar
We are modifying the doc header, we are moving elements
to a floating bar. In this case, we are moving the
doc toolbox to the floating bar.
We adapted the toolbox with the updated actions.
We update the doc header to use all empty space.
We moved the emoji part from the toolbox directly
to the header.
2026-06-01 10:22:29 +02:00
Anthony LC 882c2ac979 ♻️(frontend) replace visibility Alert
We remove the AlertPublic component and replace it
with a new visibility status in the DocHeaderInfo
component. This change simplifies the user interface
by providing a more direct indication of the
document's visibility status, whether it's public
or internal, without needing an additional alert
component.
2026-06-01 10:22:00 +02:00
Anthony LC e8cc19b74e 🚚(frontend) move Button Share to Floating Bar
We are modifying the doc header, we are moving elements
to a floating bar. In this case, we are moving the
Button Share to the floating bar.
2026-06-01 10:22:00 +02:00
Anthony LC f7f0c4d3e3 🛂(frontend) add guard before importing a doc
We could still have 400 error when importing
".markdown", because the backend only accepts ".md"
for markdown files. We added another guard on
the extensions to prevent this error and make sure
the user send acceptable formats.
2026-05-29 17:42:46 +02:00
Anthony LC e85e7d6c65 ️(frontend) fine grained accessibility for right panel
- improve semantics and aria attributes
- gives the focus to the panel when open or switching panels
- gives back the focus to the trigger element when closing the panel
2026-05-27 17:03:28 +02:00
Anthony LC 981aef0f18 📱(frontend) coordinate left/right panel visibility on tablet
On tablet, the place is too tight to have both
panels open at the same time. We have a fine-grained
control of the panel visibility to display panel
depend users interactions and responsive breakpoints.
2026-05-27 17:03:27 +02:00
Anthony LC 43a3620700 📱(frontend) reduce breakpoint mobile view
Most of the application was switching to mobile
view at the medium breakpoint.
Medium breakpoint let enough place to display
most of the application features and it is more
user friendly to switch to mobile view at the
small breakpoint.
We are switching to mobile view at the small breakpoint
to give more place to the application features
and to be more user friendly.
2026-05-27 17:03:27 +02:00
Anthony LC 68b9342401 ♻️(frontend) move table of content to right panel
We move the floating table of content to the
right panel. This allows us to have a more consistent
UI and to make room for the right sidebar.
2026-05-27 17:03:26 +02:00
Anthony LC 2c4317947b (frontend) add comment side panel
Add comment side panel to the right panel.
We will be able to manage the threads of the
document and see the content of the comments in
a side panel.
The advantage of this approach is that we will
be able to:
- see the comments that have been removed because
  of deleted text
- see the resolved comments
- see the unresolved comments
2026-05-27 17:03:26 +02:00
Anthony LC 896444aa13 (frontend) add right panel
Add a right panel, it will in a first time be used
to display the comment side panel, but it will be
used in the future for other features as well.
2026-05-27 16:49:21 +02:00
Anthony LCandManuel Raynaud 7ad9550f54 (backend) add unresolve action to ThreadViewSet
We have now the possibility to unresolve a thread
from the frontend.
We need to add the unresolve action to the
ThreadViewSet.
2026-05-26 12:21:47 +02:00
Anthony LCandManuel Raynaud 7956540b73 👔(backend) add resolved thread to queryset
We need to include resolved threads in the queryset
of the ThreadViewSet, otherwise they won't be
included in the list of threads and we will not be
able to list resolved threads in the side panel.
2026-05-26 10:28:09 +02:00
Anthony LC 0bfc697476 🐛(frontend) remove comments from print
When we print a document, we want to hide
the comments and selection highlights. This is
done by adding some CSS rules to the print styles.
2026-05-19 22:04:44 +02:00
Anthony LC 48ba77b6d1 🔥(frontend) remove patch following upgrade of Cunningham
A patch about tabindex was added to the codebase
to fix an accessibility issue. However, after
upgrading Cunningham, the issue seems to have been
resolved and the patch is no longer necessary.
Therefore, we are removing the patch to keep
our code clean and maintainable.
2026-05-19 21:36:26 +02:00
Anthony LC 41f76ebde8 ⬆️(dependencies) upgrade Blocknote to 0.51.1
Upgrade Blocknote to 0.51.1 to get the latest
features and bug fixes.
2026-05-19 21:36:26 +02:00
Anthony LC 9cde092250 ⬇️(frontend) downgrade major release @hocuspocus
@hocuspocus made a major release, we need to do
a substantial refactor to be compatible with it.
This PR downgrades to the previous major release,
which is still compatible with our codebase,
until we have time to do the necessary refactor.
2026-05-19 17:01:44 +02:00
Anthony LC c52569448b (e2e) fix some flakiness
Strong flakiness started to appear.
This commit aims to fix some of them by improving
the stability of the tests and removing some
redundant checks.
2026-05-12 10:43:27 +02:00
Anthony LC d340c8f1f1 🧐(frontend) dispatch the app version to posthog
We add the app version in Posthog events to be
able to track which versions are being used and
identify potential issues related to specific
versions.
2026-05-07 14:20:05 +02:00
Anthony LC 67773ef2d9 🩺(project) reload app if front and back unsync
We observe some cases where the frontend and
backend versions can get out of sync, which can
cause issues.
To mitigate this, we want to implement a mechanism
that detects when the frontend and backend
versions are mismatched and triggers a
reload of the application to ensure they are in sync.
2026-05-07 14:20:05 +02:00
Anthony LC a166716a2f ️(frontend) close websocket connection when user change tab
When a user change to another tab, after a delay of "inactivity"
we disconnect the user from the collaboration server.
When the user come back we reconnect to the server
again. It will reduce the connection to the collaboration
server and reduce outburst during reconnection during
a ingress ngnix restart.
2026-05-06 16:19:40 +02:00
Anthony LC bd662d72bf 🐛(frontend) fix loading comments transaction
When we load the comments we have to notify the
subscribers of the DocsThreadStore. This generates
a Yjs transaction that is currently treated as a
user-initiated content change that will trigger
a patch request when the doc will try to save.
We now update the transaction origin when we notify
the subscribers so that we can reliably identify
and ignore those transactions in the useSaveDoc
hook.
2026-05-06 15:55:47 +02:00
Anthony LC 3701fe5a45 🐛(frontend) interlinking are exported correctly in print mode
Interlinking are now exported correctly in print
mode. The interlinking was not a link in print
mode, but now it is.
2026-05-06 15:12:24 +02:00
Anthony LC 0f527a789a 🔒️(frontend) sanitize color during collaboration
To improve security we sanitize the color used
for collaboration presence to ensure it's a valid
hex color. If the color is not valid, we generate
a random color instead. This prevents potential
issues with invalid color values being used in the UI.
2026-05-05 15:21:16 +02:00
Anthony LC 5f700ed6c4 💬(frontend) add missing link in onboarding description
We added a missing link in the onboarding step
description to direct users to ready-made templates f
or common use cases. This enhancement aims to improve
the user experience by providing easy access to
resources that can help users get started quickly
and customize their workflow efficiently.
2026-05-05 13:23:19 +02:00
Anthony LC b0d9ed15c0 ️(frontend) add skeleton on content loading
Content is longer to load than other parts of the
editor because of the connection with websocket
to the collaboration server. To improve the user
experience, we add a skeleton on the content part
of the editor while the others parts are displayed.
2026-05-05 12:12:11 +02:00
Anthony LC d41e44dcd5 🐛(frontend) fix uikit dnd tree
The last version of UIKit has a bug that causes
the dnd tree to break. It is due to some
pointers event that are not properly handled.
We remove the pointer event in waiting for the
fix to be released.
2026-05-05 10:56:59 +02:00
Anthony LC 07e7b3feb6 🏷️(mail) adapt to mjml v5
We upgraded to mjml v5, which has some breaking changes.
By default the ubuntu font was loaded, with google
fonts, that is not GDPR compliant.
We switched to Inter, and uses fonts.bunny.net to
load the font, which is GDPR compliant.
2026-05-05 10:56:59 +02:00
Anthony LC aa71cfdfc0 ️(frontend) remove listener on hover with react-dropzone
React-dropzone was rerendering components on hover,
which was unnecessary. This commit removes the
rerendering by adapting its settings.
2026-05-05 10:53:39 +02:00
Anthony LC 7afa17a181 💄(frontend) adapt css to Blocknote v0.49
We updated Blocknote to v0.49, which includes
some breaking changes in the CSS. This commit adapts
our custom styles to the new version of Blocknote.
2026-05-05 10:53:39 +02:00
Anthony LC af2b381097 🐛(frontend) fix scroll table of content
The scroll of the table of content was calculated
on mount of the component, so when the editor height change,
the scroll of the table of content was not updated.
We added a observer to observe the height of the
editor and update the scroll of the table of
content when the height change.
2026-05-05 10:53:39 +02:00
Anthony LC 5015d42677 🏷️(frontend) adapt types to i18next v26
We updated i18next to v26, which includes some
breaking changes. This commit adapts our types
to the new version, ensuring compatibility and
proper type checking throughout our codebase.
2026-05-05 10:53:39 +02:00
Anthony LC 738ff90fc7 🏷️(frontend) adapt types to upgrade Cunningham and ui-kit
We upgraded Cunningham and ui-kit dependencies, which
introduced some breaking changes. This commit adapts
our code to these changes, ensuring compatibility
with the new versions of these libraries.
2026-05-05 10:53:38 +02:00
Anthony LC 0e8094c733 🏷️(frontend) adapt types to typescript v6
We updated typescript to v6, which includes some
breaking changes. This commit adapts our code to
be compatible with the new version of typescript.
2026-05-05 10:53:38 +02:00
Anthony LC fa9d56d79b 🔒️(js) fix security warning
Critical:
- protobufjs CVE

High:
- lodash CVE
- picomatch CVE
- Vite CVE

Moderate:
- postcss CVE
- uuid CVE
- dompurify CVE
- follow-redirects CVE
2026-04-29 15:04:58 +02:00
Anthony LCandManuel Raynaud 9f1d4543e7 (e2e) adapt e2e test to fit translation upgrade
We upgraded djangorestframework, which includes a
change in the translation system. This change caused
the e2e test for the app impress language
to fail.
To fix this, we updated the test to work
with the new translation system.
2026-04-29 09:16:12 +02:00
Anthony LC 7df5aba991 (e2e) fix uuid not formatted correctly in mocked document
We added a guard on the uuid format in our frontend
requests, this guard broke some of our e2e tests
because the mocked document id was not a valid uuid.
2026-04-28 09:08:30 +02:00
Anthony LCandManuel Raynaud 100817b0e6 🥅(sw) improve requests fallback
We improve overall SW requests fallback.
If the plugin fails we try to refetch the request
without the plugin modifications, meaning the
status code will be more in correlation with the
actual server response and not the plugin error.

We improved as well the cache fallback, if
the cache failed because a store was missing,
we delete the DB to be sure to have a DB in
correlation with the current app version.
2026-04-27 15:07:34 +02:00
Anthony LCandManuel Raynaud ff2c61a3dc ✈️(SW) add offline support for content
We have added offline support for content.
When the content update fails, we save the new
content in the cache, and we will sync it later
with the SyncManager.
2026-04-27 15:07:34 +02:00
Anthony LCandManuel Raynaud 4d250a7342 ️(SW) cache content and metadata for API requests
We cache the content of API responses in the service
worker, so that we can serve them when the user
is offline.
We also cache the ETag and Last-Modified headers,
so that we can make conditional requests to the
server and avoid downloading the content again if
it hasn't changed.
2026-04-27 15:07:34 +02:00
Anthony LCandManuel Raynaud b6c6fc8217 👔(frontend) integrate dedicated content endpoint
To improve the performance of loading document content,
we have implemented a dedicated endpoint for
fetching document content. This allows us to load
the document metadata and content separately.
We updated the different components to utilize
this new endpoint, ensuring that the document content is
fetched and updated correctly.
2026-04-27 15:07:33 +02:00
Anthony LCandManuel Raynaud 68f1600c2b 🔥(clients) remove without_content query string
We now have a dedicated API to fetch only the doc
content, so we can remove the without_content
query string from the doc fetching API.
2026-04-27 15:07:33 +02:00
Anthony LC aed8ae7181 🐛(frontend) remove horizontal line when no elements
When no elements are present in the doc share
modals, a horizontal line is still displayed.
This PR removes this line when there are no elements
to display.
2026-04-21 11:39:07 +02:00
Anthony LC e39b03c272 🐛(frontend) fix app shallow reload
The app was doing a shallow reload when user
was coming from another tab and the user data
was staled. We stop to block the app during the
loading state, depend the response the app
will manage correctly its states.
2026-04-21 11:39:07 +02:00
Anthony LC 3cc9655574 🐛(frontend) fix position interlinking when lost focus
When switching between a interlinking search to a
interlinking link, we could lose the position of
the interlinking. The interlinking was added at
the beginning of the document or where the cursor was.
We refactorize the interlinking to be only one type
of inline content, by doing so we do not lose the position
of the interlinking because we don't remove the interlinking search
to add the interlinking link, we just update the
interlinking search to be a interlinking link.
2026-04-21 10:15:35 +02:00
Anthony LC c20e71e21d 💄(frontend) update interlinking ux/ui
Update interlinking to fit the new design.
The notable changes is that we cannot create
a subdoc from the search dropdown.
2026-04-21 10:15:34 +02:00
Anthony LC b3dd8f2e39 🐛(frontend) fix interlinking modal clipping
Depend the parent block, the modal search may be
clipped by the parent block. We now use the portal
to render the modal search, which will not be
affected by the parent block's clipping.
2026-04-21 10:15:34 +02:00
Anthony LC ee90443cb2 (frontend) add documentation link in help menu
We want to add a link to the documentation in
the help menu, to make it easier for users to find it.
2026-04-20 14:29:12 +02:00
Anthony LC 572074d141 🚸(frontend) show Crisp from the help menu
The Crisp button is very intrusive, it often overlaps
with element of the app.
We now show the Crisp modal
only when the user clicks on the "Get Support"
button in the help menu.
2026-04-20 14:29:12 +02:00
Anthony LC 599b909318 🛂(frontend) fix cannot manage member on small screen
We can now manage document members on small
screens (mobile and tablet). We improved the
overall responsive design of the doc share modal.
2026-04-20 11:00:41 +02:00
Anthony LC 5a687799d5 🥚(e2e) fix e2e easter egg
The test e2e were not working on April 1st
because of the easter egg that changes
the document emoji to a fish.
2026-04-17 16:08:07 +02:00
Anthony LC ff176d67ae 🚨(frontend) add default favicon.ico
We had a warning in the console about a
missing favicon.ico. This commit adds a default
one to prevent that warning.
2026-04-14 15:47:26 +02:00
Anthony LC 7dc7320dac 🚸(frontend) redirect on current url tab after 401
When multiple tabs were opened and a 401 error occurred,
the user was redirected to the login page, then
after login, the user was redirected to the page
where the last 401 error occurred.
We improved this behavior by saving the url per tab,
and after login, the user is redirected to the
last url of the current tab.
2026-04-14 14:48:15 +02:00
Anthony LC d9334352bb ♻️(CI) factorized E2E tests into a separate workflow
We had to maintains 2 jobs, test-e2e-chromium and
test-e2e-other-browser, in the impress-frontend
workflow.
By factorising the E2E tests into a separate
workflow, we can now maintain only one job for
each browser, which is much simpler and easier
to maintain.
2026-04-13 11:36:23 +02:00
Anthony LC d68d7ee31d 🐛(CI) add last-failed flag only if last-run is filled
We got cases where the last-run is empty, but the
last-failed flag is set to true. If that happens,
the workflow will fail because the last-run is empty.
We now check if the last-run is filled before
setting the last-failed flag.
2026-04-13 11:36:23 +02:00
Anthony LC c1e104a686 🐛(frontend) abort check media status unmount
When a media file is uploaded, the application
checks its status every 5 seconds until it
becomes 'ready'. If the user navigates away from
the page before the media is ready, the
application should stop checking the status to
avoid unnecessary API calls. This can be achieved
by using an AbortController to signal when the
component is unmounted, allowing the loop to
exit gracefully.
2026-04-09 11:51:19 +02:00
Anthony LC 21c73fd064 🔖(patch) release 4.8.6
Added:
- 🚸(frontend) allow opening "@page" links with
  ctrl/command/middle-mouse click
-  E2E - Any instance friendly

Changed:
- ♻️(backend) do not paginate threads list response
- 💄(frontend) Use StyledLink for sub doc tree

Fixed:
- 🐛(frontend) Fix drop cursor creating columns
- 🐛 Fixed side effects between comments and versioning
2026-04-09 09:52:00 +02:00
Anthony LC b5d9c58761 💄(frontend) replace icons in tree children action
We replace icons with what is used in the ui kit.
By replacing the icons, we also fix the height
problems with Firefox.
2026-04-08 16:15:30 +02:00
Anthony LC c58deb11e8 🏷️(frontend) adapt thread new type
We stopped to use pagination for thread comments,
so we need to adapt the thread type to reflect that.
2026-04-08 14:04:03 +02:00
Anthony LC dba762759e 🐛(frontend) Fixed side effects between comments and versionning
We fixed 2 side effects between comments and versionning:
- When going from a version, it was not possible
to add a comment anymore. This was due to the fact
that the versionning was resetting the comment store.
- When restoring a version, we now reset the comment
store to avoid having comments that are not relevant
anymore.
2026-04-08 09:36:25 +02:00