fix: 对话页面
This commit is contained in:
@@ -25,6 +25,7 @@ import SelectPreference from '../preference/SelectPreference.tsx'
|
|||||||
import TextFieldPreference from '../preference/TextFieldPreference.tsx'
|
import TextFieldPreference from '../preference/TextFieldPreference.tsx'
|
||||||
import Preference from '../preference/Preference.tsx'
|
import Preference from '../preference/Preference.tsx'
|
||||||
import GroupSettings from "../../api/client_data/GroupSettings.ts"
|
import GroupSettings from "../../api/client_data/GroupSettings.ts"
|
||||||
|
import PreferenceUpdater from "../preference/PreferenceUpdater.ts";
|
||||||
|
|
||||||
interface Args extends React.HTMLAttributes<HTMLElement> {
|
interface Args extends React.HTMLAttributes<HTMLElement> {
|
||||||
target: string
|
target: string
|
||||||
@@ -65,7 +66,6 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
|
|||||||
} as Chat)
|
} as Chat)
|
||||||
|
|
||||||
const [tabItemSelected, setTabItemSelected] = React.useState('None')
|
const [tabItemSelected, setTabItemSelected] = React.useState('None')
|
||||||
const [groupPreferenceDefaultValue, setGroupPreferenceDefaultValue] = React.useState<GroupSettings>({})
|
|
||||||
const tabRef = React.useRef<Tab>(null)
|
const tabRef = React.useRef<Tab>(null)
|
||||||
const chatPanelRef = React.useRef<HTMLElement>(null)
|
const chatPanelRef = React.useRef<HTMLElement>(null)
|
||||||
useEventListener(tabRef, 'change', () => {
|
useEventListener(tabRef, 'change', () => {
|
||||||
@@ -85,9 +85,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
|
|||||||
|
|
||||||
setTabItemSelected("Chat")
|
setTabItemSelected("Chat")
|
||||||
if (re.data!.type == 'group') {
|
if (re.data!.type == 'group') {
|
||||||
setGroupPreferenceDefaultValue(re.data!.settings as GroupSettings)
|
groupPreferenceStore.setState(re.data!.settings as GroupSettings)
|
||||||
groupPreferenceStore.setter(re.data!.settings as GroupSettings)
|
|
||||||
console.log(re.data!.settings as GroupSettings)
|
|
||||||
}
|
}
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
chatPanelRef.current!.scrollTo({
|
chatPanelRef.current!.scrollTo({
|
||||||
@@ -226,11 +224,6 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
|
|||||||
settings: value,
|
settings: value,
|
||||||
})
|
})
|
||||||
if (checkApiSuccessOrSncakbar(re, "更新设定失败")) return
|
if (checkApiSuccessOrSncakbar(re, "更新设定失败")) return
|
||||||
|
|
||||||
setChatInfo(JSON.parse(JSON.stringify({
|
|
||||||
...chatInfo,
|
|
||||||
settings: value as object,
|
|
||||||
})))
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -456,6 +449,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
|
|||||||
}}>
|
}}>
|
||||||
{
|
{
|
||||||
chatInfo.type == 'group' && <PreferenceLayout>
|
chatInfo.type == 'group' && <PreferenceLayout>
|
||||||
|
<PreferenceUpdater.Provider value={groupPreferenceStore.createUpdater()}>
|
||||||
<PreferenceHeader
|
<PreferenceHeader
|
||||||
title="群组管理" />
|
title="群组管理" />
|
||||||
<Preference
|
<Preference
|
||||||
@@ -468,36 +462,37 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
|
|||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
title="允许入群"
|
title="允许入群"
|
||||||
icon="person_add"
|
icon="person_add"
|
||||||
defaultState={groupPreferenceDefaultValue.allow_new_member_join || false}
|
id="allow_new_member_join"
|
||||||
updater={groupPreferenceStore.updater('allow_new_member_join')} />
|
state={groupPreferenceStore.state.allow_new_member_join || false} />
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
title="允许成员邀请"
|
title="允许成员邀请"
|
||||||
description="目前压根没有这项功能, 甚至还不能查看成员列表, 以后再说吧"
|
description="目前压根没有这项功能, 甚至还不能查看成员列表, 以后再说吧"
|
||||||
|
id="allow_new_member_from_invitation"
|
||||||
icon="_"
|
icon="_"
|
||||||
disabled={true}
|
disabled={true}
|
||||||
defaultState={groupPreferenceDefaultValue.allow_new_member_from_invitation || false}
|
state={groupPreferenceStore.state.allow_new_member_from_invitation || false} />
|
||||||
updater={groupPreferenceStore.updater('allow_new_member_from_invitation')} />
|
|
||||||
<SelectPreference
|
<SelectPreference
|
||||||
title="入群验证方式"
|
title="入群验证方式"
|
||||||
icon="_"
|
icon="_"
|
||||||
|
id="new_member_join_method"
|
||||||
selections={{
|
selections={{
|
||||||
disabled: "无需验证",
|
disabled: "无需验证",
|
||||||
allowed_by_admin: "只需要管理员批准 (WIP)",
|
allowed_by_admin: "只需要管理员批准 (WIP)",
|
||||||
answered_and_allowed_by_admin: "需要回答问题并获得管理员批准 (WIP)",
|
answered_and_allowed_by_admin: "需要回答问题并获得管理员批准 (WIP)",
|
||||||
}}
|
}}
|
||||||
disabled={!groupPreferenceStore.value.allow_new_member_join}
|
disabled={!groupPreferenceStore.state.allow_new_member_join}
|
||||||
updater={groupPreferenceStore.updater('new_member_join_method')}
|
state={groupPreferenceStore.state.new_member_join_method || 'disabled'} />
|
||||||
defaultCheckedId={groupPreferenceDefaultValue.new_member_join_method || 'disabled'} />
|
|
||||||
{
|
{
|
||||||
groupPreferenceStore.value.new_member_join_method == 'answered_and_allowed_by_admin'
|
groupPreferenceStore.state.new_member_join_method == 'answered_and_allowed_by_admin'
|
||||||
&& <TextFieldPreference
|
&& <TextFieldPreference
|
||||||
title="设置问题"
|
title="设置问题"
|
||||||
icon="_"
|
icon="_"
|
||||||
|
id="answered_and_allowed_by_admin_question"
|
||||||
description="WIP"
|
description="WIP"
|
||||||
defaultState={groupPreferenceDefaultValue.answered_and_allowed_by_admin_question || ''}
|
state={groupPreferenceStore.state.answered_and_allowed_by_admin_question || ''}
|
||||||
disabled={true}
|
disabled={true} />
|
||||||
updater={groupPreferenceStore.updater('answered_and_allowed_by_admin_question')} />
|
|
||||||
}
|
}
|
||||||
|
</PreferenceUpdater.Provider>
|
||||||
</PreferenceLayout>
|
</PreferenceLayout>
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user