Packages
live_svelte
0.17.4
0.18.0
0.18.0-rc0
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.0
0.15.0
0.15.0-rc.6
0.15.0-rc.5
0.15.0-rc.4
0.15.0-rc.3
0.15.0-rc.2
0.15.0-rc.1
0.14.1
0.14.0
0.13.3
0.13.3-rc.1
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.2
0.10.1
0.10.0
0.9.0
0.9.0-rc2
0.9.0-rc1
0.9.0-rc0
0.8.0
0.7.1
0.7.0
0.6.0
0.5.1
0.5.0
0.5.0-rc0
0.4.2
0.4.2-rc0
0.4.1
0.4.1-rc0
0.4.0
0.3.5
0.3.5-rc1
0.3.5-rc0
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.3.0-rc1
0.3.0-rc0
0.2.0
0.2.0-rc1
0.2.0-rc0
0.1.0
0.1.0-rc5
0.1.0-rc4
0.1.0-rc3
0.1.0-rc2
0.1.0-rc1
0.1.0-rc0
E2E reactivity for Svelte and LiveView
Current section
Files
Jump to
Current section
Files
lib/dynamic_slots.ex
defmodule LiveSvelte.DynamicSlots do
@moduledoc false
@doc false
defmacro __before_compile__(_env) do
quote do
# Mark Phoenix's generated __components__/0 as overridable, then override it.
# Phoenix generates __components__/0 but doesn't mark it as overridable.
defoverridable __components__: 0
# Override Phoenix's __components__/0 to skip slot validation for the svelte component.
#
# Phoenix LiveView 1.x uses __components__/0 to get component definitions for validation.
# The verification code does:
# component = submod.__components__()[fun]
#
# If this returns nil, the verification is skipped entirely for that component.
# This allows LiveSvelte to accept arbitrary slot names without warnings.
def __components__ do
# Return empty map so __components__()[:svelte] returns nil
# This skips slot/attr validation entirely for the svelte component
%{}
end
end
end
end