ChatCrawlersearch across public Telegram Open the app
T

TypeScript Ecosystem

сообщение · 2026-01-31 23:14 UTC
S
import React from 'react'; import { render, Route, Router, Root, Text, ButtonGroup, Button, useText } from '@urban-bot/core'; import { UrbanBotTelegram } from '@urban-bot/telegram'; import { UrbanBotSlack } from '@urban-bot/slack'; function Echo() { const [text, setText] = React.useState('Say something'); useText(({ text }) => { setText(text); }); return ( <Text> <i>{text}</i> </Text> ); } function Counter() { const [count, setCount] = React.useState(0); const increment = () => setCount(count + 1); const decrement = () => setCount(count - 1); return ( <ButtonGroup title={count} isNewMessageEveryRender={false}> <Button onClick={increment}>+1</Button> <Button onClick={decrement}>-1</Button> </ButtonGroup> ); } function App() { return ( <Router> <Route path="/echo"> <Echo /> </Route> <Route path="/counter"> <Counter /> </Route> </Router> ); } const urbanBotTelegram = new UrbanBotTelegram({ token: 'telegramToken', }); const urbanBotSlack = new UrbanBotSlack({ signingSecret: 'slackSigningSecret', token: 'slackToken', }); render( <Root bot={urbanBotTelegram}> <App /> </Root> ); render( <Root bot={urbanBotSlack}> <App /> </Root> );

Вся лента · оригинал в Telegram

Open in Telegram Каталог площадок Искать в ChatCrawler

A snapshot of an open public feed from the search index ChatCrawler — “Google for public Telegram”; refreshed as the venue is crawled. Times are UTC.

Public content only, official Telegram API. About · FAQ · What we do not do · Remove a page · Catalog