Add actionButton.define "command" attribute
This automatically triggers a command bound to an actionButton, and notably also shows the keyboard shortcut connected to it (if any)
This commit is contained in:
@@ -10,21 +10,28 @@ APIs to more conveniently define action buttons (alternative to setting them via
|
||||
Keys to define:
|
||||
|
||||
* `icon`: [feather icon](https://feathericons.com) to use for your button
|
||||
* `run`: function to invoke once the button is pushed
|
||||
* `command` (optional): command name to invoke when clicked. When set, the command's keyboard shortcut is automatically shown in the tooltip. Replaces `run`.
|
||||
* `run` (optional): function to invoke once the button is pushed. Use this for custom logic that doesn't map to a single command.
|
||||
* `description` (optional): description of button (appears on hover)
|
||||
* `priority` (optional): determines priority of button (the higher, the earlier in the list)
|
||||
* `mobile`: when set to `true` this button will only appear on mobile devices
|
||||
* `standalone`: when set to `true` this button will only appear in standalone/PWA mode; when `false`, only in browser mode
|
||||
* `dropdown` (optional): when set to `false`, the button stays visible outside the dropdown menu on mobile (default: `true`)
|
||||
|
||||
# Example
|
||||
Either `command` or `run` should be specified.
|
||||
|
||||
# Examples
|
||||
```lua
|
||||
-- Defines a new button that forces your UI into read-only mode
|
||||
-- Bind a button to a command (keyboard shortcut shown on hover)
|
||||
actionButton.define {
|
||||
icon = "pen-tool",
|
||||
description = "Start journaling",
|
||||
command = "Journal: Today",
|
||||
}
|
||||
|
||||
-- Custom button with a run function
|
||||
actionButton.define {
|
||||
icon = "eye",
|
||||
-- Uncomment the following line to only make this button appear
|
||||
-- ONLY on mobile devices:
|
||||
-- mobile = true,
|
||||
run = function()
|
||||
editor.setUiOption("forcedROMode", true)
|
||||
editor.rebuildEditorState()
|
||||
|
||||
@@ -358,6 +358,10 @@ config.define("actionButtons", {
|
||||
type = "string",
|
||||
description = "Optional description of the action button"
|
||||
},
|
||||
command = {
|
||||
type = "string",
|
||||
description = "Optional command name to invoke when clicked (replaces run). The command's keyboard shortcut is automatically shown in the tooltip."
|
||||
},
|
||||
priority = {
|
||||
type = "number",
|
||||
description = "Optional priority: the higher the earlier the button will appear in the list"
|
||||
@@ -376,7 +380,7 @@ config.define("actionButtons", {
|
||||
},
|
||||
run = schema.func(),
|
||||
},
|
||||
required = {"icon", "run"},
|
||||
required = {"icon"},
|
||||
additionalProperties = false
|
||||
}
|
||||
})
|
||||
@@ -399,28 +403,22 @@ config.set {
|
||||
{
|
||||
icon = "home",
|
||||
description = "Go to the index page",
|
||||
command = "Navigate: Home",
|
||||
priority = 3,
|
||||
dropdown = false,
|
||||
run = function()
|
||||
editor.invokeCommand "Navigate: Home"
|
||||
end
|
||||
},
|
||||
{
|
||||
icon = "book",
|
||||
description = "Open page",
|
||||
command = "Navigate: Page Picker",
|
||||
priority = 2,
|
||||
dropdown = false,
|
||||
run = function()
|
||||
editor.invokeCommand "Navigate: Page Picker"
|
||||
end
|
||||
},
|
||||
{
|
||||
icon = "terminal",
|
||||
description = "Run command",
|
||||
command = "Open Command Palette",
|
||||
priority = 1,
|
||||
run = function()
|
||||
editor.invokeCommand "Open Command Palette"
|
||||
end,
|
||||
},
|
||||
{
|
||||
icon = "chevron-left",
|
||||
|
||||
Reference in New Issue
Block a user