feat: add none to enforcement entries

This commit is contained in:
skinmaker1345 2025-08-17 22:06:13 +09:00
parent 8a96148245
commit ebd2704e68
4 changed files with 48 additions and 24 deletions

View File

@ -367,20 +367,30 @@ const AddBot: NextPage<AddBotProps> = ({ logged, user, csrfToken, theme }) => {
}
>
<Selects
options={Object.entries(botEnforcements).map(([k, v]) => ({
label: v.label,
value: k,
}))}
handleChange={(value) => {
setFieldValue(
'enforcements',
value.map((v) => v.value)
)
options={Object.entries(botEnforcements)
.filter(([k, v]) => k === 'NONE' || !values.enforcements.includes('NONE'))
.map(([k, v]) => ({
label: v.label,
value: k,
}))}
handleChange={(values) => {
if (values.some((i) => i.value === 'NONE')) {
setFieldValue('enforcements', ['NONE'])
} else {
setFieldValue(
'enforcements',
values.map((v) => v.value)
)
}
}}
handleTouch={() => setFieldTouched('enforcements', true)}
values={values.enforcements ?? ([] as string[])}
setValues={(value) => {
setFieldValue('enforcements', value)
setValues={(values) => {
if (values.includes('NONE')) {
setFieldValue('enforcements', ['NONE'])
} else {
setFieldValue('enforcements', values)
}
}}
/>
</Label>

View File

@ -339,20 +339,30 @@ const ManageBotPage: NextPage<ManageBotProps> = ({ bot, user, csrfToken, theme }
}
>
<Selects
options={Object.entries(botEnforcements).map(([k, v]) => ({
label: v.label,
value: k,
}))}
handleChange={(value) => {
setFieldValue(
'enforcements',
value.map((v) => v.value)
)
options={Object.entries(botEnforcements)
.filter(([k, v]) => k === 'NONE' || !values.enforcements.includes('NONE'))
.map(([k, v]) => ({
label: v.label,
value: k,
}))}
handleChange={(values) => {
if (values.some((i) => i.value === 'NONE')) {
setFieldValue('enforcements', ['NONE'])
} else {
setFieldValue(
'enforcements',
values.map((v) => v.value)
)
}
}}
handleTouch={() => setFieldTouched('enforcements', true)}
values={values.enforcements ?? ([] as string[])}
setValues={(value) => {
setFieldValue('enforcements', value)
setValues={(values) => {
if (values.includes('NONE')) {
setFieldValue('enforcements', ['NONE'])
} else {
setFieldValue('enforcements', values)
}
}}
/>
</Label>

View File

@ -121,6 +121,10 @@ export const botCategoryDescription = {
}
export const botEnforcements = {
NONE: {
label: '해당사항이 없습니다.',
description: '',
},
JOIN_PARTIALLY_ENFORCED: {
label: '서버 참여가 필요한 기능이 있습니다',
description: '봇의 일부 명령어는 봇의 디스코드 서버에 참여해야 사용할 수 있습니다.',

View File

@ -641,7 +641,7 @@ async function submitBot(
git: data.git,
url: data.url,
category: JSON.stringify(data.category),
enforcements: JSON.stringify(data.enforcements),
enforcements: JSON.stringify(data.enforcements.filter((el) => el !== 'NONE')),
discord: data.discord,
state: 0,
})
@ -751,7 +751,7 @@ async function updateBot(id: string, data: ManageBot): Promise<number> {
intro: data.intro,
desc: data.desc,
vanity: data.vanity,
enforcements: JSON.stringify(data.enforcements),
enforcements: JSON.stringify(data.enforcements.filter((el) => el !== 'NONE')),
banner: data.banner,
bg: data.bg,
})