feat: support pre hook and post hook for actions

This commit is contained in:
lilong.129
2025-05-09 23:01:27 +08:00
parent 433b1cd48d
commit 3715cbb432
10 changed files with 89 additions and 20 deletions

View File

@@ -23,6 +23,7 @@ type ActionOptions struct {
Frequency int `json:"frequency,omitempty" yaml:"frequency,omitempty"`
ScreenOptions
HookOptions
// set custiom options such as textview, id, description
Custom map[string]interface{} `json:"custom,omitempty" yaml:"custom,omitempty"`

31
uixt/option/hook.go Normal file
View File

@@ -0,0 +1,31 @@
package option
// HookOptions contains options for action hooks
type HookOptions struct {
// pre hook before action
PreHook func()
// post hook after action
PostHook func()
}
// WithPreHook sets the pre hook before action
func WithPreHook(preHook func()) ActionOption {
return func(o *ActionOptions) {
o.PreHook = preHook
}
}
// WithPostHook sets the post hook after action
func WithPostHook(postHook func()) ActionOption {
return func(o *ActionOptions) {
o.PostHook = postHook
}
}
// WithHooks sets the pre hook and post hook
func WithHooks(preHook func(), postHook func()) ActionOption {
return func(o *ActionOptions) {
o.PreHook = preHook
o.PostHook = postHook
}
}