* fix: Logic error in toast fix: Remove useless component * fix: Logout not clearing all stores * Add icons to notification settings * Add eslint rule to enforce spaced comment * Add eslint rule for arrow-body-style * Add eslint rule to enforce self-closing components * Add menu to api key settings Fix: Deleting webhook subscription does not remove from UI Split webhook subscriptions into active and inactive Styling updates
41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
import { SettingsIcon } from "outline-icons";
|
|
import * as React from "react";
|
|
import { createAction } from "~/actions";
|
|
import { NavigationSection } from "~/actions/sections";
|
|
import history from "~/utils/history";
|
|
import useSettingsConfig from "./useSettingsConfig";
|
|
|
|
const useSettingsActions = () => {
|
|
const config = useSettingsConfig();
|
|
const actions = React.useMemo(
|
|
() =>
|
|
config.map((item) => {
|
|
const Icon = item.icon;
|
|
return {
|
|
id: item.path,
|
|
name: item.name,
|
|
icon: <Icon color="currentColor" />,
|
|
section: NavigationSection,
|
|
perform: () => history.push(item.path),
|
|
};
|
|
}),
|
|
[config]
|
|
);
|
|
|
|
const navigateToSettings = React.useMemo(
|
|
() =>
|
|
createAction({
|
|
name: ({ t }) => t("Settings"),
|
|
section: NavigationSection,
|
|
shortcut: ["g", "s"],
|
|
icon: <SettingsIcon />,
|
|
children: () => actions,
|
|
}),
|
|
[actions]
|
|
);
|
|
|
|
return navigateToSettings;
|
|
};
|
|
|
|
export default useSettingsActions;
|