tg-app-ui
v0.0.3
Published
πΊπΈ Documentation in English is available via [link](https://github.com/drago-v/tg-app-ui/blob/master/README.md)
Downloads
8
Readme
tg-app-ui
πΊπΈ Documentation in English is available via link
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° tg-app-ui ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠΈΡΠΈΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Telegram. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΈΠ½ΠΈ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Telegram, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ React.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎ ΠΌΠΈΠ½ΠΈ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Telegram
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠΈΠ½ΠΈ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ tg-app-ui: @MiniAppExampleBot
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΡΠ΅ΠΌ
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ²
- ΠΠ΅Π½Ρ Π² ΡΡΠΈΠ»Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Telegram
- ΠΠ½ΠΎΠΏΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
- Π€ΠΎΡΠΌΡ - ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ, ΡΠ΅Π»Π΅ΠΊΡΡ
- ΠΠ°Π³ΡΡΠ·ΠΎΡΠ½ΡΠ΅ ΡΠΏΠΈΠ½Π½Π΅ΡΡ
- ΠΠΎΠ΄Π°Π»ΡΠ½ΡΠ΅ ΠΎΠΊΠ½Π°
ΠΠΎΡΠΎΠΆΠ½Π°Ρ ΠΊΠ°ΡΡΠ°
- ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
β οΈ ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π° Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ. β οΈ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
TgMiniAppRoot
ΠΡΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠ±Π΅ΡΠ½ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
<TgMiniAppRoot>
/* Your app here */
</TgMiniAppRoot>
TgBlock ΠΈ TgBlockItem
ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
TgBlock
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π»ΠΎΠΊ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΈ ΠΊΡΠ°ΡΠΊΠΈΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠ½ΠΈΠ·Ρ, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ TgBlockItem
.
TgBlockItem
- ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±Π»ΠΎΠΊ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΈ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ chevron ΠΈΠΊΠΎΠ½ΠΊΡ, Π΅ΡΠ»ΠΈ Π±Π»ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π³Π°Π»ΠΎΡΠΊΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π²ΡΠ±ΠΎΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°, ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Telegram-Π±ΠΎΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ: @MiniAppExampleBot
ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ:
react-router
ΠΈreact-router-dom
Π΄Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡreact-icons
Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΡΠ°ΡΠΈΠ²ΡΡ ΠΈΠΊΠΎΠ½ΠΎΠΊ
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
cd tg-miniapp-example
npm i
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
npm run start
<TgBlock title="ΠΡΠΎΡΡΠΎΠ΅ ΠΌΠ΅Π½Ρ">
<TgBlockItem text="ΠΡΠΎΡΠΈΠ»Ρ" chevron />
<TgBlockItem text="ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ" chevron />
<TgBlockItem text="Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ" chevron />
<TgBlockItem text="ΠΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ" chevron />
<TgBlockItem text="Π’Π΅Ρ
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°" chevron />
</TgBlock>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
<TgBlock
title="ΠΠ΅Π½Ρ Ρ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ"
caption="ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ΅Π½Ρ Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ ΠΈ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ"
>
<TgBlockItem
text="ΠΡΠΎΡΠΈΠ»Ρ"
caption="ΠΠ°Π½Π½ΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ"
icon={<IoPersonSharp size={20} />}
chevron
/>
<TgBlockItem
text="ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ"
caption="Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ"
icon={<IoSettingsSharp size={20} />}
chevron
/>
<TgBlockItem
text="Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ"
caption="ΠΠΊΠ»ΡΡΠΈΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠΈΡΡ"
icon={<IoNotificationsSharp size={20} />}
chevron
/>
<TgBlockItem
text="ΠΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ"
caption="ΠΠ°ΡΠΈΡΠ° Π²Π°ΡΠΈΡ
Π΄Π°Π½Π½ΡΡ
"
icon={<IoLockClosed size={20} />}
chevron
/>
<TgBlockItem
text="ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°"
caption="ΠΡΡΠ°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΡ? ΠΠΈΡΠΈΡΠ΅!"
icon={<IoHelpCircleSharp size={20} />}
chevron
/>
</TgBlock>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
<TgBlock
title="ΠΠ΅Π½Ρ Ρ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ"
>
<TgBlockItem
text="ΠΡΠΎΡΠΈΠ»Ρ"
icon={<IoPersonSharp size={20} />}
iconColor="green"
chevron
/>
<TgBlockItem
text="ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ"
icon={<IoSettingsSharp size={20} />}
iconColor="red"
chevron
/>
<TgBlockItem
text="Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ"
icon={<IoNotificationsSharp size={20} />}
iconColor="orange"
chevron
/>
<TgBlockItem
text="ΠΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ"
icon={<IoLockClosed size={20} />}
iconColor="violet"
chevron
/>
<TgBlockItem
text="ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°"
icon={<IoHelpCircleSharp size={20} />}
iconColor="blue"
chevron
/>
</TgBlock>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
const [switcherValue1, setSwitcherValue1] = useState(true);
const [switcherValue2, setSwitcherValue2] = useState(false);
const [switcherValue3, setSwitcherValue3] = useState(false);
const toggleSwitcher1 = () => setSwitcherValue1(!switcherValue1);
const toggleSwitcher2 = () => setSwitcherValue2(!switcherValue2);
const toggleSwitcher3 = () => setSwitcherValue3(!switcherValue3);
return <TgBlock title="ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ">
<TgBlockItem
text="ΠΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ"
switcher={switcherValue1}
onClick={toggleSwitcher1}
/>
<TgBlockItem
text="ΠΠΎΠ»ΡΡΠ°ΡΡ ΡΠ°ΡΡΡΠ»ΠΊΠΈ"
switcher={switcherValue2}
onClick={toggleSwitcher2} />
<TgBlockItem
text="ΠΠΎΠ»ΡΡΠ°ΡΡ ΡΠΏΠ΅ΡΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ"
switcher={switcherValue3}
onClick={toggleSwitcher3}
/>
</TgBlock>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
const [selectedValue, setSelectedValue] = useState('white');
return <TgBlock title={lang.forms_select_title}>
<TgBlockItem
text="ΠΠ΅Π»ΡΠΉ"
icon="βͺοΈ"
check={selectedValue === 'white'}
onClick={() => setSelectedValue('white')}
/>
<TgBlockItem
text="Π§ΡΡΠ½ΡΠΉ"
icon="β«οΈ"
check={selectedValue === 'black'}
onClick={() => setSelectedValue('black')}
/>
<TgBlockItem
text="Π‘ΠΈΠ½ΠΈΠΉ"
icon="π΅"
check={selectedValue === 'blue'}
onClick={() => setSelectedValue('blue')}
/>
<TgBlockItem
text="ΠΡΠ°ΡΠ½ΡΠΉ"
icon="π΄"
check={selectedValue === 'red'}
onClick={() => setSelectedValue('red')}
/>
<TgBlockItem
text="ΠΡΠ»ΡΡΠΉ"
icon="π‘"
check={selectedValue === 'yellow'}
onClick={() => setSelectedValue('yellow')}
/>
</TgBlock>
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: