module ReactOnRails::Utils
def self.normalize_immediate_hydration(value, name, type = "Component")
-
(ArgumentError)- If value is not a boolean or nil
Returns:
-
(Boolean)- The normalized immediate_hydration value
Parameters:
-
type(String) -- The type ("Component" or "Store") for warning messages -
name(String) -- The name of the component/store (for warning messages) -
value(Boolean, nil) -- The immediate_hydration option value
def self.normalize_immediate_hydration(value, name, type = "Component") # Type validation: only accept boolean or nil unless [true, false, nil].include?(value) raise ArgumentError, "[REACT ON RAILS] immediate_hydration must be true, false, or nil. Got: #{value.inspect} (#{value.class})" end # Strict equality check: only trigger warning for explicit boolean true if value == true && !react_on_rails_pro? Rails.logger.warn immediate_hydration_pro_license_warning(name, type) return false end # If nil, default based on Pro license status return react_on_rails_pro? if value.nil? # Return explicit value (including false) value end