Skip to content

Commit 73d0ac8

Browse files
author
anchpop
committed
added slots for custom data to be passed through
1 parent 4e0bd43 commit 73d0ac8

3 files changed

Lines changed: 9 additions & 7 deletions

File tree

react/exceptions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ class ReactRenderingError(Exception):
77

88

99
class RenderServerError(Exception):
10-
pass
10+
pass

react/render.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from .render_server import render_server
55

66

7-
def render_component(path, props=None, to_static_markup=False, renderer=render_server, request_headers=None, timeout=None, path_to_react_loadable=None):
7+
def render_component(path, props=None, to_static_markup=False, renderer=render_server, request_headers=None, timeout=None, extra_data: dict=None):
88
if not os.path.isabs(path):
99
abs_path = staticfiles.find(path)
1010
if not abs_path:
@@ -14,4 +14,4 @@ def render_component(path, props=None, to_static_markup=False, renderer=render_s
1414
if not os.path.exists(path):
1515
raise ComponentSourceFileNotFound(path)
1616

17-
return renderer.render(path, props, to_static_markup, request_headers, timeout=timeout, path_to_react_loadable=path_to_react_loadable)
17+
return renderer.render(path, props, to_static_markup, request_headers, timeout=timeout, extra_data=extra_data)

react/render_server.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88

99

1010
class RenderedComponent(object):
11-
def __init__(self, markup, props, css=None):
11+
def __init__(self, markup, props, css=None, extra_data: dict={}):
1212
self.markup = markup
1313
self.props = props
1414
self.css = css
15+
self.extra_data = extra_data
1516

1617
def __str__(self):
1718
return self.markup
@@ -21,7 +22,7 @@ def __unicode__(self):
2122

2223

2324
class RenderServer(object):
24-
def render(self, path: str, props: dict=None, to_static_markup: bool=False, request_headers=None, timeout=None, path_to_react_loadable: str=None):
25+
def render(self, path: str, props: dict=None, to_static_markup: bool=False, request_headers=None, timeout=None, extra_data: dict={}):
2526
url = conf.settings.RENDER_URL
2627

2728
if props is not None:
@@ -36,7 +37,7 @@ def render(self, path: str, props: dict=None, to_static_markup: bool=False, requ
3637
'path': path,
3738
'serializedProps': serialized_props,
3839
'toStaticMarkup': to_static_markup,
39-
'pathToReactLoadable': path_to_react_loadable
40+
'extraData': extra_data
4041
}
4142
serialized_options = json.dumps(options)
4243
options_hash = hashlib.sha1(
@@ -75,6 +76,7 @@ def render(self, path: str, props: dict=None, to_static_markup: bool=False, requ
7576
markup = obj.get('markup', None)
7677
err = obj.get('error', None)
7778
css = obj.get('css', None)
79+
extra_data = obj.get('extra_data', {})
7880

7981
if err:
8082
if 'message' in err and 'stack' in err:
@@ -88,7 +90,7 @@ def render(self, path: str, props: dict=None, to_static_markup: bool=False, requ
8890
raise ReactRenderingError(
8991
'Render server failed to return markup. Returned: {}'.format(obj))
9092

91-
return RenderedComponent(markup, serialized_props, css)
93+
return RenderedComponent(markup, serialized_props, css, extra_data)
9294

9395

9496
render_server = RenderServer()

0 commit comments

Comments
 (0)