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

🛹 Feature: ToastService - Callback zum schließen der Toasts benötigt #5508

Closed
Chrisdo82 opened this issue Oct 30, 2023 · 2 comments · Fixed by #5537
Closed

🛹 Feature: ToastService - Callback zum schließen der Toasts benötigt #5508

Chrisdo82 opened this issue Oct 30, 2023 · 2 comments · Fixed by #5537
Assignees
Labels
desybri The task is assigned to the DESYBRI design system. feature New feature or request

Comments

@Chrisdo82
Copy link
Contributor

Note

  • Ich achte beim Erstellen des Issues darauf, dass ich keine fachlichen und unternehmensinternen Details preisgebe.

Featureanfrage

Bezieht sich Ihre Feature-Anfrage auf ein Problem? Bitte beschreiben.

Wir benötigen einen Callback am ToastService womit alle toasts geschlossen werden können.

Ich dachte erst, dass dafür die dispose Funktion zuständig sei. Aber sobald ich die verwende, kann ich kein neues Toast mehr erstellen. So habe ich es beispielsweise versucht:

function ErrorFallback({ error }: Omit<FallbackProps, 'error'> & { error: Error }) {
  useEffect(() => {
    const toaster = ToasterService.getInstance(document)
    void toaster.enqueue({ label: error.name, type: 'error', description: error.message })

    return () => toaster.dispose()
  }, [error.message, error.name])

  return null
}

Wenn ich nun ErrorFallback erneut rendere, dann wird kein Toast mehr erstellt.

Beschreiben Sie die gewünschte Lösung

Es gibt eine Möglichkeit die Toasts über den ToastService zu schließen und im Anschluss neue zu erstellen.

@deleonio deleonio added feature New feature or request desybri The task is assigned to the DESYBRI design system. labels Oct 30, 2023
@Chrisdo82
Copy link
Contributor Author

Chrisdo82 commented Nov 1, 2023

Mein derzeitiger Workaround ist der hier:

return () => {
  // TODO fix it as soon as KoliBri provided a cleanup function (https://github.com/public-ui/kolibri/issues/5508)
  toaster.dispose()
  // @ts-expect-error fix it as soon as KoliBri provided a cleanup function (https://github.com/public-ui/kolibri/issues/5508)
  // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
  ToasterService.instances.delete(document)
}

@deleonio deleonio moved this to 🏗 In progress in KoliBri Board Nov 6, 2023
@deleonio deleonio moved this from 🏗 In progress to 📄 Ready in KoliBri Board Nov 6, 2023
@deleonio
Copy link
Contributor

deleonio commented Nov 6, 2023

Bitte einen entsprechenden Callback vorsehen. Ggf. im Team absprechen, wie genau.

@sdvg sdvg self-assigned this Nov 6, 2023
@sdvg sdvg moved this from 📄 Ready to 🏗 In progress in KoliBri Board Nov 6, 2023
@sdvg sdvg linked a pull request Nov 6, 2023 that will close this issue
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in KoliBri Board Nov 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
desybri The task is assigned to the DESYBRI design system. feature New feature or request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants