npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, πŸ‘‹, I’m Ryan HefnerΒ  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you πŸ™

Β© 2024 – Pkg Stats / Ryan Hefner

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
  • Кнопки дСйствий
  • Π€ΠΎΡ€ΠΌΡ‹ - поля Π²Π²ΠΎΠ΄Π°, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ, сСлСкты
  • Π—Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Π΅ спиннСры
  • ΠœΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π°

ДороТная ΠΊΠ°Ρ€Ρ‚Π°

  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ
  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСсты для всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ большС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°

ДокумСнтация

⚠️ ДокумСнтация Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π° Π² блиТайшСС врСмя. ⚠️

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

  1. TgMiniAppRoot
  2. TgBlock
  3. TgBlockItem

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>

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: МСню с Ρ†Π²Π΅Ρ‚Π½Ρ‹ΠΌΠΈ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ