@@ -53,13 +53,17 @@ def shared_data
53
53
controller . __send__ ( :inertia_shared_data )
54
54
end
55
55
56
+ # Cast props to symbol keyed hash before merging so that we have a consistent data structure and
57
+ # avoid duplicate keys after merging.
58
+ #
59
+ # Functionally, this permits using either string or symbol keys in the controller. Since the results
60
+ # is cast to json, we should treat string/symbol keys as identical.
61
+ def merge_props ( shared_data , props )
62
+ shared_data . deep_symbolize_keys . send ( @deep_merge ? :deep_merge : :merge , props . deep_symbolize_keys )
63
+ end
64
+
56
65
def computed_props
57
- # Cast props to symbol keyed hash before merging so that we have a consistent data structure and
58
- # avoid duplicate keys after merging.
59
- #
60
- # Functionally, this permits using either string or symbol keys in the controller. Since the results
61
- # is cast to json, we should treat string/symbol keys as identical.
62
- _props = shared_data . deep_symbolize_keys . send ( prop_merge_method , props . deep_symbolize_keys ) . select do |key , prop |
66
+ _props = merge_props ( shared_data , props ) . select do |key , prop |
63
67
if rendering_partial_component?
64
68
key . in? partial_keys
65
69
else
@@ -97,9 +101,5 @@ def partial_keys
97
101
def rendering_partial_component?
98
102
@request . inertia_partial? && @request . headers [ 'X-Inertia-Partial-Component' ] == component
99
103
end
100
-
101
- def prop_merge_method
102
- @deep_merge ? :deep_merge : :merge
103
- end
104
104
end
105
105
end
0 commit comments