2.1.1 • Published 3 years ago

dsc-ui v2.1.1

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

O objetivo desta library é permitir que haja uma interface simples e direta entre o programador e o usuário, podendo criar formulários com botões que extendem para outras áreas e por aí vai.

Example for creating a Login Form (username, password)

Imports

import { UI, ContentField } from 'discord-ui'

Creating a ContentField for Username Input

const usernameContentField = () => new ContentField({
  name: 'Username',
  description: 'What is your username?',
  key: 'username',
  required: true,
  filter: async (message) => {
    const { length } = message.content

    if (length < 6) return 'Must be higher than 6 in length'
    if (length > 64) return 'Must be less than 64 in length'

    return true
  },
  contentResolver: async (message) => message.content,
  valueResolver: async (message) => message.content
})

Creating a ContentField for Password Input

const passwordContentField = () => new ContentField({
  name: 'Password',
  description: 'What is your password?',
  key: 'password',
  required: true,
  filter: async (message) => {
    if (message.content.includes(' ')) return 'Password can not have spaces'

    const { length } = message.content

    if (length < 6) return 'Must be higher than 6 in length'
    if (length > 64) return 'Must be less than 64 in length'

    return true
  },
  contentResolver: async (message) => '*'.repeat(message.content.length),
  valueResolver: async (message) => message.content
})

Using the UI to handle the form

client.on('message', message => {
  if (message.content.startsWith('!login')) {

    const loginUI = new UI({
      components: [
        usernameContentField(),
        passwordContentField()
      ] 
    })

    await loginUI.setup({
      channel: message.channel,
      user: message.author
    })
    
    if (loginUI.completed) {
      const { username, password } = loginUI.getContentFieldsResult()

      console.log(`Username: ${username} | Password: ${password}`)
    }
  }
})
2.1.1

3 years ago

2.1.0

3 years ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.0.7

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.0

3 years ago