hexlet-rus / runit

Online Editor Form Embedding
https://runit.hexlet.ru/
Other
34 stars 114 forks source link

Bug: Window layout error when creating a snippet copy in the mobile version #516

Open KseniyaKerzhner opened 1 month ago

KseniyaKerzhner commented 1 month ago

Summary

In the mobile version, after creating a copy of the snippet, the location of the window view changes from vertical to horizontal, which is not convenient when used in the mobile version. There is no change view button in the mobile version.

https://github.com/hexlet-rus/runit/assets/34837694/03897300-92d0-4e64-84e7-7d90a2c55b10

Reproduction steps

1. User authorized
2. Created a snippet in any language
3. Open the code view mode
4. Press "toggle device toolbar"
4. Select Pixel 7 device
5. Open one of the existing snippets
6. Click the button to copy the snippet
7. Create a copy

Expected result

A copy of the snippet opened and the windows are arranged vertically as in the first snippet

Actual result

Opened a copy of the snippet and the windows are horizontal, can not be changed

Browsers

Chrome

OS

Windows

KseniyaKerzhner commented 1 month ago

Еще немного потестировав этот баг обнаружила, что лечится переворотом экрана в горизонтальное положение. Оставить как баг или удалить?

bobrov-site commented 1 month ago

@KseniyaKerzhner думаю такого поведения не должно быть в любом случае. Могу взять задачу в работу

bobrov-site commented 1 month ago

Поскольку отмажки не было, то беру задачу в работу.

bobrov-site commented 4 weeks ago

Нужен help от фронтов. Я знаю почему такая проблема возникает. Ситуация следующая:

После того, как мы нажимаем на кнопку копировать сниппет, нас перебрасывает на новый url. Соответственно, страница как-будто не перегружается, а значит компонент не рендерится

https://github.com/hexlet-rus/runit/blob/0bc147bee653d24e67f9e9fb414bdfe388ee385f/frontend/src/components/Modals/DuplicateSnippetModal.jsx#L62

На странице сниппетов, я ранее создавал хук в котором отслеживаются изменение размеров экрана, но по какой-то причине он не работает

https://github.com/hexlet-rus/runit/blob/0bc147bee653d24e67f9e9fb414bdfe388ee385f/frontend/src/pages/snippet/index.jsx#L72-L78

Соотвественно, когда мы открываем с телефона и переходим на новую страницу у нас идет сброс до нашего стэйта

https://github.com/hexlet-rus/runit/blob/0bc147bee653d24e67f9e9fb414bdfe388ee385f/frontend/src/slices/editorSlice.js#L21

Как решить эту проблему?