1. Согласен, надо как минимум пример написать.
2. Здесь думаю лучше обсуждать конкретные случаи с предложением лучших вариантов, желательно на гитхабе.
3. Это именно хуки, так как используют useBotContext под капотом. useOnText наверное лучше подошло бы, но не уверен, что сейчас стоит менять имя после релиза.
4. Про dice очень хорошо заметил, я планировал его в random для большей универсальности переименовать, в коде даже туду есть, но скорее всего ты прав, лучше вынести в телеграм пакет. Пока тактика такая, что если что-то может встретиться более чем в одном мессенджере будет в core, а если реально специфичная вещь, то будет в соответствующем пакете.
5. Сейчас будет просто варнинг, что такой то мессенджер не поддерживает такой тип сообщения.
1. Уже есть в create-urban-bot.
2. Да, было бы круто прикрутить как минимум react-router, глянем в эту сторону.
3. Не совсем понял, лучше создать issue с примером.
4. Согласен, это важнее.
5. С ошибками все как в реакте, но в доках надо прописать, согласен.
Чуть позже отвечу по пунктам, замечания дельные. Как минимум hot reload уже реализован в стартере, линт девелопмент, билд скрипты, возможно надо было подробнее описать
Согласен, эти функции скорее для единого интерфейса, под капотом должен вызываться метод активного bot-instance'ов. Можно будет брать их из хука, чтобы внутри сами получали активный bot из контекста.
import { useDownloadFile } from '@urban-bot/core';
function Component {
const downloadFile = useDownloadFile();
// ...
}
Можно, в планах добавить хук или утилиту, чтобы легко получать ссылку на файл или скачивать на файловую систему, если юзер что-то прислал боту, например, в Telegram вроде надо три разных запроса подряд отправить, чтобы получить ссылку, а так функцию вставил и будет работать. Сейчас можно так сделать, но нужно вручную к Telegram API обращаться
useText(({ text }) => console.log(`Пользователь отправил сообщение ${text}`));
Или передавать обработку сообщения выше или в state manager, например, redux.
function Component({ handleTextMessage }) {
useText(({ text }) => handleTextMessage(text));
// или
useText(({ text }) => dispatch(addTodo(text)));
// ...
}
По поводу роутера уже в работе задача по поддержке router params, я добавил твое предложение и ссылку на комментарий в issue github.com/urban-bot/urban-bot/issues/109.
Даже не нужно интегрироваться с телеграммом.
Я имел в виду, чтобы взять уже готовую веб версию чата, на базе Telegram, которая в open source, чтобы не писать свой. Может будет проще свой компонент написать как ты предложил, в любом случае спасибо за хорошие наводки.
1. Согласен, так может быть удобнее, но передача текста в state, не единственный сценарий использования, и вариант с callback более наглядный, что работаем с событием. Можно написать свой хук, который ты предлагаешь, на основе существующего.
function useTextState(initialText?: string) {
const [text, setText] = React.useState(initialText);
useText(({ text }) => setText(text));
return text;
}
2. Хорошая идея, нужно посмотреть на сколько они абстрактны, легко интегрировать и приспособлены ли эти библиотеки работать на сервере, как минимум если они будут хранить историю всех сообщений всех пользователей, то память быстро переполнится. Просто навигация в мессенджере довольно простая, без вложенности, и история нужна скорее всего очень редко, сделали свой простой компонент, чтобы покрыть базовые кейсы.
3. Это супер идея. Я хотел это реализовать до статьи, интегрировать Urban Bot в телеграм веб версию , чтобы работало без авторизации и привязки к API, чтоб можно было прямо в браузере, например, в codesandbox, кодить онлайн, делиться чат ботами с кодом. Если сделаю прототип, то отпишу сюда.
2. Здесь думаю лучше обсуждать конкретные случаи с предложением лучших вариантов, желательно на гитхабе.
3. Это именно хуки, так как используют useBotContext под капотом. useOnText наверное лучше подошло бы, но не уверен, что сейчас стоит менять имя после релиза.
4. Про dice очень хорошо заметил, я планировал его в random для большей универсальности переименовать, в коде даже туду есть, но скорее всего ты прав, лучше вынести в телеграм пакет. Пока тактика такая, что если что-то может встретиться более чем в одном мессенджере будет в core, а если реально специфичная вещь, то будет в соответствующем пакете.
5. Сейчас будет просто варнинг, что такой то мессенджер не поддерживает такой тип сообщения.
1. Уже есть в create-urban-bot.
2. Да, было бы круто прикрутить как минимум react-router, глянем в эту сторону.
3. Не совсем понял, лучше создать issue с примером.
4. Согласен, это важнее.
5. С ошибками все как в реакте, но в доках надо прописать, согласен.
Чуть позже отвечу по пунктам, замечания дельные. Как минимум hot reload уже реализован в стартере, линт девелопмент, билд скрипты, возможно надо было подробнее описать
Что-то например:
Например логировать сообщения
Или передавать обработку сообщения выше или в state manager, например, redux.
По поводу роутера уже в работе задача по поддержке router params, я добавил твое предложение и ссылку на комментарий в issue github.com/urban-bot/urban-bot/issues/109.
Я имел в виду, чтобы взять уже готовую веб версию чата, на базе Telegram, которая в open source, чтобы не писать свой. Может будет проще свой компонент написать как ты предложил, в любом случае спасибо за хорошие наводки.
2. Хорошая идея, нужно посмотреть на сколько они абстрактны, легко интегрировать и приспособлены ли эти библиотеки работать на сервере, как минимум если они будут хранить историю всех сообщений всех пользователей, то память быстро переполнится. Просто навигация в мессенджере довольно простая, без вложенности, и история нужна скорее всего очень редко, сделали свой простой компонент, чтобы покрыть базовые кейсы.
3. Это супер идея. Я хотел это реализовать до статьи, интегрировать Urban Bot в телеграм веб версию , чтобы работало без авторизации и привязки к API, чтоб можно было прямо в браузере, например, в codesandbox, кодить онлайн, делиться чат ботами с кодом. Если сделаю прототип, то отпишу сюда.
Спасибо за интерес и хорошие предложения.