feat: support configurable trust score threshold per context

This commit is contained in:
codytseng 2026-01-14 23:20:28 +08:00
parent 28a1b3096a
commit ca9610b711
46 changed files with 350 additions and 122 deletions

View file

@ -0,0 +1,29 @@
import { Label } from '@/components/ui/label'
import { Slider } from '@/components/ui/slider'
import { SPECIAL_TRUST_SCORE_FILTER_ID } from '@/constants'
import { useUserTrust } from '@/providers/UserTrustProvider'
import { useTranslation } from 'react-i18next'
import SettingItem from './SettingItem'
export default function DefaultTrustScoreFilter() {
const { t } = useTranslation()
const { minTrustScore, updateMinTrustScore } = useUserTrust()
return (
<SettingItem className="flex-col items-start gap-2">
<Label className="text-base font-normal">
{t('Default trust score filter threshold ({{n}}%)', { n: minTrustScore })}
</Label>
<Slider
value={[minTrustScore]}
onValueChange={([value]) =>
updateMinTrustScore(SPECIAL_TRUST_SCORE_FILTER_ID.DEFAULT, value)
}
min={0}
max={100}
step={5}
className="w-full"
/>
</SettingItem>
)
}

View file

@ -19,6 +19,7 @@ import { SelectValue } from '@radix-ui/react-select'
import { RotateCcw } from 'lucide-react'
import { forwardRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
import DefaultTrustScoreFilter from './DefaultTrustScoreFilter'
import MutedWords from './MutedWords'
import SettingItem from './SettingItem'
@ -150,6 +151,7 @@ const GeneralSettingsPage = forwardRef(({ index }: { index?: number }, ref) => {
</SelectContent>
</Select>
</SettingItem>
<DefaultTrustScoreFilter />
<SettingItem>
<Label htmlFor="quick-reaction" className="text-base font-normal">
<div>{t('Quick reaction')}</div>