67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /* eslint-disable @typescript-eslint/no-unsafe-call,
 | |
|                   @typescript-eslint/no-unsafe-return,
 | |
|                   @typescript-eslint/no-unsafe-assignment,
 | |
|                   @typescript-eslint/no-unsafe-member-access
 | |
|                   -- the settings store is not yet typed */
 | |
| import { useCallback } from 'react';
 | |
| 
 | |
| import { FormattedMessage } from 'react-intl';
 | |
| 
 | |
| import { useAppSelector, useAppDispatch } from 'mastodon/store';
 | |
| 
 | |
| import { changeSetting } from '../../../actions/settings';
 | |
| import SettingToggle from '../../notifications/components/setting_toggle';
 | |
| 
 | |
| export const ColumnSettings: React.FC = () => {
 | |
|   const settings = useAppSelector((state) => state.settings.get('home'));
 | |
| 
 | |
|   const dispatch = useAppDispatch();
 | |
|   const onChange = useCallback(
 | |
|     (key: string, checked: boolean) => {
 | |
|       dispatch(changeSetting(['home', ...key], checked));
 | |
|     },
 | |
|     [dispatch],
 | |
|   );
 | |
| 
 | |
|   return (
 | |
|     <div>
 | |
|       <span className='column-settings__section'>
 | |
|         <FormattedMessage
 | |
|           id='home.column_settings.basic'
 | |
|           defaultMessage='Basic'
 | |
|         />
 | |
|       </span>
 | |
| 
 | |
|       <div className='column-settings__row'>
 | |
|         <SettingToggle
 | |
|           prefix='home_timeline'
 | |
|           settings={settings}
 | |
|           settingPath={['shows', 'reblog']}
 | |
|           onChange={onChange}
 | |
|           label={
 | |
|             <FormattedMessage
 | |
|               id='home.column_settings.show_reblogs'
 | |
|               defaultMessage='Show boosts'
 | |
|             />
 | |
|           }
 | |
|         />
 | |
|       </div>
 | |
| 
 | |
|       <div className='column-settings__row'>
 | |
|         <SettingToggle
 | |
|           prefix='home_timeline'
 | |
|           settings={settings}
 | |
|           settingPath={['shows', 'reply']}
 | |
|           onChange={onChange}
 | |
|           label={
 | |
|             <FormattedMessage
 | |
|               id='home.column_settings.show_replies'
 | |
|               defaultMessage='Show replies'
 | |
|             />
 | |
|           }
 | |
|         />
 | |
|       </div>
 | |
|     </div>
 | |
|   );
 | |
| };
 |