When `standalone` is set to true, this action button will only appear in "standalone PWA" mode (e.g. home-screen mobile apps, or installed PWA on desktop). Useful to e.g. only show forward and backward buttons. These forward and backward buttons are now also added to the default action button config.
45 lines
1.4 KiB
Markdown
45 lines
1.4 KiB
Markdown
---
|
|
description: APIs to define custom action buttons
|
|
tags: meta/api
|
|
---
|
|
|
|
APIs to more conveniently define action buttons (alternative to setting them via regular [[^Library/Std/Config]]).
|
|
|
|
# API
|
|
## actionButton.define(spec)
|
|
Keys to define:
|
|
|
|
* `icon`: [feather icon](https://feathericons.com) to use for your button
|
|
* `run`: function to invoke once the button is pushed
|
|
* `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
|
|
```lua
|
|
-- Defines a new button that forces your UI into read-only mode
|
|
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()
|
|
end
|
|
}
|
|
```
|
|
# Implementation
|
|
```space-lua
|
|
-- priority: 100
|
|
|
|
actionButton = actionButton or {}
|
|
|
|
function actionButton.define(spec)
|
|
local actionButtonConfig = config.get("actionButtons", {})
|
|
table.insert(actionButtonConfig, spec)
|
|
end
|
|
```
|