add example/form.lua
All checks were successful
NeoVim tests / code-quality (push) Successful in 1m24s
All checks were successful
NeoVim tests / code-quality (push) Successful in 1m24s
This commit is contained in:
parent
ad2e579d1d
commit
1b2cb3f45f
34
examples/form.lua
Normal file
34
examples/form.lua
Normal file
@ -0,0 +1,34 @@
|
||||
local h = require('u.renderer').h
|
||||
local Renderer = require('u.renderer').Renderer
|
||||
local tracker = require 'u.tracker'
|
||||
|
||||
-- Create a new, temporary, buffer to the side:
|
||||
vim.cmd.vnew()
|
||||
vim.bo.buftype = 'nofile'
|
||||
vim.bo.bufhidden = 'wipe'
|
||||
vim.bo.buflisted = false
|
||||
local renderer = Renderer.new()
|
||||
|
||||
-- Create two signals:
|
||||
local s_name = tracker.create_signal '[(name here)]'
|
||||
local s_age = tracker.create_signal '[(age here)]'
|
||||
|
||||
-- Utility to trim brackets from strings:
|
||||
local function trimb(s) return (s:gsub('^%[(.*)%]$', '%1')) end
|
||||
|
||||
-- Render effect that depends on the signals:
|
||||
tracker.create_effect(function()
|
||||
local name = s_name:get()
|
||||
local age = s_age:get()
|
||||
renderer:render {
|
||||
h.Type({}, '# Form Example'),
|
||||
'\n\n',
|
||||
|
||||
{ 'Name: ', h.Structure({ signal = s_name }, name) },
|
||||
'\n',
|
||||
{ 'Age: ', h.Structure({ signal = s_age }, age) },
|
||||
|
||||
'\n\n',
|
||||
{ 'Hello, "', trimb(name), '", you are "', trimb(age), '" years old.' },
|
||||
}
|
||||
end)
|
Loading…
x
Reference in New Issue
Block a user