Refactor useSettings hook, parse with zod schema

This commit is contained in:
Alex Gleason
2024-02-13 23:20:18 -06:00
parent b0a82a23d0
commit ffdb744d16
40 changed files with 108 additions and 92 deletions

View File

@ -25,7 +25,7 @@ const InstanceInfoPanel: React.FC<IInstanceInfoPanel> = ({ host }) => {
const settings = useSettings();
const remoteInstance: any = useAppSelector(state => getRemoteInstance(state, host));
const pinned: boolean = (settings.getIn(['remote_timeline', 'pinnedHosts']) as any).includes(host);
const pinned = settings.remote_timeline.pinnedHosts.includes(host);
const handlePinHost = () => {
if (!pinned) {

View File

@ -7,10 +7,9 @@ import { useInstance, useSettings, useSoapboxConfig } from 'soapbox/hooks';
const PromoPanel: React.FC = () => {
const instance = useInstance();
const { promoPanel } = useSoapboxConfig();
const settings = useSettings();
const { locale } = useSettings();
const promoItems = promoPanel.get('items');
const locale = settings.get('locale');
if (!promoItems || promoItems.isEmpty()) return null;

View File

@ -8,7 +8,7 @@ import ThemeSelector from './theme-selector';
/** Stateful theme selector. */
const ThemeToggle: React.FC = () => {
const dispatch = useAppDispatch();
const themeMode = useSettings().get('themeMode');
const { themeMode } = useSettings();
const handleChange = (themeMode: string) => {
dispatch(changeSetting(['themeMode'], themeMode));

View File

@ -6,7 +6,7 @@ import { useSettings } from 'soapbox/hooks';
import ReducedMotion from './reduced-motion';
const OptionalMotion = (props: MotionProps) => {
const reduceMotion = useSettings().get('reduceMotion');
const { reduceMotion } = useSettings();
return (
reduceMotion ? <ReducedMotion {...props} /> : <Motion {...props} />

View File

@ -43,7 +43,7 @@ const WrappedRoute: React.FC<IWrappedRoute> = ({
const history = useHistory();
const { account } = useOwnAccount();
const settings = useSettings();
const { isDeveloper } = useSettings();
const renderComponent = ({ match }: RouteComponentProps) => {
if (Page) {
@ -81,7 +81,7 @@ const WrappedRoute: React.FC<IWrappedRoute> = ({
const authorized = [
account || publicRoute,
developerOnly ? settings.get('isDeveloper') : true,
developerOnly ? isDeveloper : true,
staffOnly ? account && account.staff : true,
adminOnly ? account && account.admin : true,
].every(c => c);