@@ -14,7 +14,7 @@ import { closestCenter, DndContext, DragEndEvent, KeyboardSensor, PointerSensor,
1414import { rectSortingStrategy , SortableContext , sortableKeyboardCoordinates , useSortable } from '@dnd-kit/sortable'
1515import { CSS } from '@dnd-kit/utilities'
1616import { zodResolver } from '@hookform/resolvers/zod'
17- import { Clock , Code , ExternalLink , FileCode2 , FileText , GripVertical , HelpCircle , Link , Lock , Megaphone , Plus , RotateCcw , Settings , Shield , Sword , Trash2 , User } from 'lucide-react'
17+ import { Clock , Code , ExternalLink , FileCode2 , FileText , Globe , GripVertical , HelpCircle , Link , Lock , Megaphone , Plus , RotateCcw , Settings , Shield , Sword , Trash2 , User } from 'lucide-react'
1818import { useEffect , useState } from 'react'
1919import { useFieldArray , useForm } from 'react-hook-form'
2020import { useTranslation } from 'react-i18next'
@@ -30,6 +30,7 @@ const subscriptionSchema = z.object({
3030 profile_title : z . string ( ) . optional ( ) ,
3131 announce : z . string ( ) . max ( 128 , 'Announcement must be 128 characters or less' ) . optional ( ) ,
3232 announce_url : z . string ( ) . url ( 'Please enter a valid URL' ) . optional ( ) . or ( z . literal ( '' ) ) ,
33+ allow_browser_config : z . boolean ( ) . optional ( ) ,
3334 rules : z . array (
3435 z . object ( {
3536 pattern : z . string ( ) . min ( 1 , 'Pattern is required' ) ,
@@ -447,6 +448,7 @@ export default function SubscriptionSettings() {
447448 profile_title : '' ,
448449 announce : '' ,
449450 announce_url : '' ,
451+ allow_browser_config : true ,
450452 rules : [ ] ,
451453 applications : [ ] ,
452454 manual_sub_request : {
@@ -533,6 +535,7 @@ export default function SubscriptionSettings() {
533535 profile_title : subscriptionData . profile_title || '' ,
534536 announce : subscriptionData . announce || '' ,
535537 announce_url : subscriptionData . announce_url || '' ,
538+ allow_browser_config : subscriptionData . allow_browser_config ?? true ,
536539 rules : subscriptionData . rules || [ ] ,
537540 applications : subscriptionData . applications || [ ] ,
538541 manual_sub_request : {
@@ -666,6 +669,7 @@ export default function SubscriptionSettings() {
666669 profile_title : subscriptionData . profile_title || '' ,
667670 announce : subscriptionData . announce || '' ,
668671 announce_url : subscriptionData . announce_url || '' ,
672+ allow_browser_config : subscriptionData . allow_browser_config ?? true ,
669673 rules : subscriptionData . rules || [ ] ,
670674 applications : subscriptionData . applications || [ ] ,
671675 manual_sub_request : {
@@ -959,6 +963,27 @@ export default function SubscriptionSettings() {
959963 </ FormItem >
960964 ) }
961965 />
966+
967+ < FormField
968+ control = { form . control }
969+ name = "allow_browser_config"
970+ render = { ( { field } ) => (
971+ < FormItem className = "flex items-center justify-between space-y-0 rounded-lg border bg-card p-3 transition-colors hover:bg-accent/50 sm:p-4 lg:col-span-2" >
972+ < div className = "flex-1 space-y-0.5 pr-4" >
973+ < FormLabel className = "flex cursor-pointer items-center gap-2 text-sm font-medium" >
974+ < Globe className = "h-4 w-4 shrink-0" />
975+ < span className = "break-words" > { t ( 'settings.subscriptions.general.allowBrowserConfig' ) } </ span >
976+ </ FormLabel >
977+ < FormDescription className = "text-xs leading-relaxed text-muted-foreground sm:leading-normal" >
978+ { t ( 'settings.subscriptions.general.allowBrowserConfigDescription' ) }
979+ </ FormDescription >
980+ </ div >
981+ < FormControl >
982+ < Switch checked = { field . value } onCheckedChange = { field . onChange } />
983+ </ FormControl >
984+ </ FormItem >
985+ ) }
986+ />
962987 </ div >
963988 </ div >
964989
0 commit comments