diff options
Diffstat (limited to 'packages/integrations/react/client.js')
-rw-r--r-- | packages/integrations/react/client.js | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/packages/integrations/react/client.js b/packages/integrations/react/client.js index 76f9ead00..13515df40 100644 --- a/packages/integrations/react/client.js +++ b/packages/integrations/react/client.js @@ -67,8 +67,19 @@ const getOrCreateRoot = (element, creator) => { export default (element) => (Component, props, { default: children, ...slotted }, { client }) => { if (!element.hasAttribute('ssr')) return; + + const actionKey = element.getAttribute('data-action-key'); + const actionName = element.getAttribute('data-action-name'); + const stringifiedActionResult = element.getAttribute('data-action-result'); + + const formState = + actionKey && actionName && stringifiedActionResult + ? [JSON.parse(stringifiedActionResult), actionKey, actionName] + : undefined; + const renderOptions = { identifierPrefix: element.getAttribute('prefix'), + formState, }; for (const [key, value] of Object.entries(slotted)) { props[key] = createElement(StaticHtml, { value, name: key }); |