Added LambdaCommand

This commit is contained in:
2025-11-24 21:31:23 +01:00
parent 84c63f0c5a
commit a6ab4b2a68
3 changed files with 23 additions and 3 deletions

View File

@@ -4,7 +4,7 @@ from typing import Callable, Any
from fasthtml.components import *
from myfasthtml.controls.BaseCommands import BaseCommands
from myfasthtml.controls.helpers import Ids, mk
from myfasthtml.controls.helpers import mk
from myfasthtml.core.commands import Command
from myfasthtml.core.instances import MultipleInstance, BaseInstance
from myfasthtml.core.matching_utils import subsequence_matching, fuzzy_matching

View File

@@ -45,7 +45,7 @@ class BaseCommand:
def execute(self, client_response: dict = None):
raise NotImplementedError
def htmx(self, target="this", swap="outerHTML", trigger=None):
def htmx(self, target: Optional[str] = "this", swap="outerHTML", trigger=None):
# Note that the default value is the same than in get_htmx_params()
if target is None:
self._htmx_extra["hx-swap"] = "none"
@@ -180,6 +180,15 @@ class Command(BaseCommand):
return [ret] + ret_from_bindings
class LambdaCommand(Command):
def __init__(self, delegate, name="LambdaCommand", description="Lambda Command"):
super().__init__(name, description, delegate)
self.htmx(target=None)
def execute(self, client_response: dict = None):
return self.callback(client_response)
class CommandsManager:
commands = {}