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

Bug fix print to png #586

Merged
merged 12 commits into from
Jan 2, 2024
Merged

Bug fix print to png #586

merged 12 commits into from
Jan 2, 2024

Conversation

AnnaLysiuk
Copy link
Collaborator

To jakby jest final version które mogę zaproponować. Idea jest całkiem prosta:

  1. klikamy print
  2. wymuszamy przerenderowanie wszystkich nodow z ustawiona flaga printPreviewActive która w stylach odpowiednio przerysowuje nody i polaczenia
  3. korzystamy z tego toPng z zewnetrznej libki
  4. przerysowujemy graph jeszcze raz z flaga ustawiona na false

potrzebowałam jeszcze 2óch pomocniczych flag zeby wiedziec w PanZoom komponencie kiedy nody sie przerysowaly pierwszy raz przed savem do png i drugi raz po savie. Może dałoby sie to lepiej zrobic nie wiem ale w aktualnej strukturze stora i całego procesu przerysowaia nie wpadłam na lepszy pomysł.

Wyrzuciłam tę funkcję showAllForExport poniewaz i tak w stylach musialam zagniezdzic te flage printPreviewActive wiec nie bylo już sensu tego zostawiac na zasadzie dodawania klasy inviewport (moim zdaniem)

Wyrzucilam tez informowanie o czasie eksportu bo teraz trzeba by było ten czas pomnozyc ze wzgledu na podwojne przerysowywanie a i tak słabo to dzialalo przy princie

Nie musimy tego od razu mergowac. Jak zaakceptujesz zmiany mogą dziwczyny przetestowac dokładnie najpierw https://bug-fix-print-to-png.graphql-editor-dev.pages.dev/
Jeden problem zaobserwowałam dla schemy github. Przy eksporcie całego graphu nie widac linii na png (a dla wiekszej schemy saleor i innych jest ok, no i aktualnie na dev tez tych linii nie printuje dla tej schemy)

@AnnaLysiuk AnnaLysiuk self-assigned this Dec 20, 2023
@aexol
Copy link
Contributor

aexol commented Dec 22, 2023

Ok akceptuje, ale chyba na przyszłość to przydałoby się po prostu oddzielny renderer tego do eksportu zrobić, sam nie wiem szczerze co gorsze :D

@AnnaLysiuk
Copy link
Collaborator Author

Ok. To może zrobię jeszcze wersję z oddzielnym rendererem tylko wtedy będą już trzy i też nie wiem co gorsze ale można sprobować

@aexol
Copy link
Contributor

aexol commented Dec 28, 2023

Nieźle to działa, jedyne co trzeba zrobić to jednak ograniczyć możliwości exportu niektórych schem. Mozna by liczyc latwo W i H tego bounding boxa i sprawdzac ile wychodzi. Mi się wydaje że np. 20 000 x 20 000 pikseli to maks na co możemy zezwolić to i tak moze wyjsc srogo megabajtów

@aexol
Copy link
Contributor

aexol commented Dec 28, 2023

a no i wtedy w errorze pisac, ze albo pochować nody i recalculate albo focusowac

@aexol aexol merged commit 8eef1bd into develop Jan 2, 2024
1 check passed
@aexol aexol deleted the bug-fix-print-to-png branch January 2, 2024 15:53
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.

None yet

2 participants