hexlet-rus / runit

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

bug: при создания html гостем в имени сниппета появляется undefined #439

Closed fey closed 3 months ago

fey commented 5 months ago

Summary

image

Reproduction steps

1. Начать Try without registration
2. Выбрать язык html
3. ждем загрузки и смотрим на название сниппета

Expected result

Сниппет не содержит undefined, либо содержит html

Actual result

На скриншоте.

Browsers

Chrome

OS

Linux

igshipilov commented 5 months ago

@fey Привет

Пытаюсь понять, в каком модуле возникает ошибка. Интуитивно кажется, что проблема возникает либо в момент генерации названия сниппета, либо в момент конкатенации сгенерированного названия и расширения .html (если такое соединение строк в принципе присутствует).

Вопрос: Какой модуль отвечает за генерацию названий сниппетов? И если расширение всё же присоединяется где-то позже, где могу это посмотреть?

fey commented 5 months ago

@igshipilov тут не подскажу. Давайте попросим помощи у @HelenOne Вообще можете попробвоать аишку глянуть, может там внутри найдете что-то про генерацию имени =)

ВОообще кажется что нам расширение не нужно особо.

igshipilov commented 5 months ago

@fey

А как могу посмотреть результаты внесённых изменений? Что бы я ни делал в коде, после команды make start всё работает без изменений, даже если удалил целый блок кода из render() в модуле.

Ещё пробовал сначала make build потом make start, но тоже не вижу влияние изменений в коде.

bobronaud commented 5 months ago

@igshipilov у меня тож такое было, когда я впервые развернул проект. не помню как я это исправил, но проблема в том, что ты запускаешь продакшн проекта, поэтому изменения кода не обровляют твою страницу

bobronaud commented 5 months ago

make build тебе тут не нужен, чтобы начать разрабатывать

igshipilov commented 5 months ago

@bobronaud Принял, make build не нужен + надо (как-то) запускать не прод, а дев.

bobronaud commented 5 months ago

@igshipilov кажется, я тебе что-то не то сказал насчет прода и дева. вот я щас открыл проект, и из корневой директории запускаю make start страница открылась, изменения применяются. возможно, ты меняешь код там, который в данный момент просто не рендерится на странице. ну типа по умолчанию открывается страница лэндинга из frontend/src/pages/landing/ и там есть компоненты лэнда, футера, хэдера. а есть в frontend/src/components/ компонент футера, и может быть ты на таком компоненте вносишь изменения, который просто не учавствует в ортисовке этого лэнда, т.к. он берет футер из другого файла

просто как пример. понятно объяснил?

igshipilov commented 5 months ago

@bobronaud Да, идею уловил, спасибо!

Опишу свои действия:

  1. Зашёл по пути: frontend/src/pages/snippet
  2. Нахожу соответствующий текущей задаче модуль, в данном случае мне кажется что это FileToolbar.jsx
  3. Меняю блок кода, который понимаю. Например, просто чтобы увидеть изменения, попытался удалить строчку 36, filenameInput.setSelectionRange(0, filenameInput.value.lastIndexOf('.'));
  4. В терминале Ctrl + C, затем make start
  5. Клик по аватарке → Новый сниппет → html → "Создать"
  6. Кликаю по иконке карандаша (переименовать) Ожидаю, что выделится весь текст. По факту выделяется текст до точки – то есть как будто я не удалял ту строчку.

Ещё я подумал, что вдруг неправильно понял работу этой строчки. Поэтому для верности снёс всё из render(), то есть начиная с 78 строчки – опять же, чтобы проверить, влияют ли мои изменения на результат. Но нет, всё рендерится нормально, никаких ошибок не возникает – будто бы код сохранён в каком-то буфере, не знаю.

bobronaud commented 5 months ago

то что ты удаляешь все из рэндера с 78 строчки, это ты удаляешь рендер из функции SnippetName(), которая начинается с 20 строки. То есть это не компонент тулбара, который рендерит иконку, название, карпандаш, облачко. ты попробуй в этом же файле удалить 160-165 строчки и заменить на return <p>lol</p>

видишь изменения?

igshipilov commented 5 months ago

Попробовал, но ничего не сломалось, не поехало. Поиск в HTML по "lol" тоже не дал результатов. Как будто нужна какая-то донастройка, чтобы вносимые мной изменения влияли на финальный результат.

Может ли быть проблемой мой браузер? Может, он кэширует как-то?..

igshipilov commented 5 months ago

Хотя вряд ли браузер – зашёл через другой, тоже нет результата

bobronaud commented 5 months ago

а в терминале че пишет?

bobronaud commented 5 months ago

кинь скрин терминала на весь экран, когда запущен сервер разработки

igshipilov commented 5 months ago

Выглядит целым, вроде: 2024-03-20_22-02-24

igshipilov commented 5 months ago

Я на сегодня уже отключаюсь

fey commented 5 months ago

Ребят, если что можете например в телеге, в канале "Волонтеры" продолжить https://t.me/hexletcommunity/12 Там могут подключиться и другие ребята.

bobrov-site commented 3 months ago

@fey проблема является еще актуальной?

fey commented 3 months ago

Связанного пулл реквеста не помню. @Yawerica можете, пожалуйста, проверить?

bobrov-site commented 3 months ago

469 я помню, что здесь решалась проблема. по-моему, я ее и решил. #470 решал тут

@fey @Yawerica

Yawerica commented 3 months ago

@fey сейчас этот баг не воспроизводится.