import { useMemo } from "react";
import { Definition, RowGroup, RowGroupOption, SingleInput, TextField, Toggle, SettingsManager } from "Components/UserSettings";
const { Provider: CopyProvider, useSettings: useCopySettings } = new SettingsManager<"copy">();
const PRESET_OPTIONS = [
{ label: "Citation", value: "citation" },
{ label: "Citekey", value: "citekey" },
{ label: "Page reference", value: "page-reference" },
{ label: "Key", value: "raw" },
{ label: "Tag", value: "tag" }
];
const USE_OPTIONS = {
"preset": "Preset",
"template": "Custom template"
};
/**
* Options for Quick Copy's override key
* @readonly
* @enum {{label: String, value: String}}
*/
export const OVERRIDE_KEY_OPTIONS = [
{ label: "Alt", value: "altKey" },
{ label: "Ctrl", value: "ctrlKey" },
{ label: "Shift", value: "shiftKey" },
{ label: "System key", value: "metaKey" }
];
const COPY_REPLACEMENTS = (
<>
Replacements available:
>
);
function CopyWidget(){
const [
{
always,
overrideKey,
preset,
template,
useAsDefault,
useQuickCopy
},
setOpts
] = useCopySettings();
const handlers = useMemo(() => {
function toggleBool(op){
setOpts(prevState => ({
...prevState,
[op]: !prevState[op]
}));
}
function updateSingleValue(op, val){
setOpts(prevState => ({
...prevState,
[op]: val
}));
}
return {
toggleAlwaysCopy: () => toggleBool("always"),
updateOverrideKey: (val) => updateSingleValue("overrideKey", val),
updatePresetFormat: (val) => updateSingleValue("preset", val),
updateTemplate: (val) => updateSingleValue("template", val),
updateUseType: (val) => updateSingleValue("useAsDefault", val),
toggleQuickCopy: () => toggleBool("useQuickCopy")
};
}, [setOpts]);
return <>
>;
}
export {
CopyProvider,
CopyWidget,
useCopySettings
};