Skip to main content

Settings

Plugins can register settings without having to build any custom UI components. Settings automatically appear in the standard RemNote Settings UI and are automatically synced across devices.

Registering Settings

strings

async function onActivate(plugin: ReactRNPlugin) {
await plugin.settings.registerStringSetting({
id: "name",
title: "What is your name?",
defaultValue: "Bob",
});
});

You can also register multiline text settings by passing multiline: true:

async function onActivate(plugin: ReactRNPlugin) {
await plugin.settings.registerStringSetting({
id: "name",
title: "What is your name?",
defaultValue: "Bob",
multiline: true,
});
});

numbers

async function onActivate(plugin: ReactRNPlugin) {
await plugin.settings.registerNumberSetting({
id: "age",
title: "What is your age?",
defaultValue: 20,
});
});

booleans

async function onActivate(plugin: ReactRNPlugin) {
await plugin.settings.registerBooleanSetting({
id: "trueOrFalse",
title: "True or False?",
defaultValue: false,
});
});
await plugin.settings.registerDropdownSetting({
id: "favorite-food",
title: "Favorite Food",
defaultValue: "pizza"
options: [{
key: "0",
label: "Pizza",
value: "pizza",
},
{
key: "1",
label: "Cake",
value: "cake",
}]
})

Getting Settings

Settings can be retrieved through plugin method calls or plugin hooks by passing the same id you used to register the setting.

const value = useTracker(
async (reactivePlugin) =>
await reactivePlugin.settings.getSetting('mySettingId'),
[],
);
const value = await plugin.settings.getSetting('mySettingId");