diff --git a/web/templates/message_group.hbs b/web/templates/message_group.hbs
index a29fd19ee8..ba049e8d21 100644
--- a/web/templates/message_group.hbs
+++ b/web/templates/message_group.hbs
@@ -3,14 +3,14 @@
{{#each message_groups}}
{{#with this}}
{{#if bookend_top}}
- {{> bookend}}
+ {{> bookend .}}
{{/if}}
- {{> recipient_row use_match_properties=../use_match_properties}}
+ {{> recipient_row . use_match_properties=../use_match_properties}}
{{#each message_containers}}
{{#with this}}
- {{> single_message use_match_properties=../../use_match_properties message_list_id=../../message_list_id is_archived=../is_archived}}
+ {{> single_message . use_match_properties=../../use_match_properties message_list_id=../../message_list_id is_archived=../is_archived}}
{{/with}}
{{/each}}
diff --git a/web/templates/message_reactions.hbs b/web/templates/message_reactions.hbs
index c1ab44c917..d72441f46b 100644
--- a/web/templates/message_reactions.hbs
+++ b/web/templates/message_reactions.hbs
@@ -1,6 +1,6 @@
diff --git a/web/templates/set_status_overlay.hbs b/web/templates/set_status_overlay.hbs
index d00edeed95..9b4ce1c5a7 100644
--- a/web/templates/set_status_overlay.hbs
+++ b/web/templates/set_status_overlay.hbs
@@ -1,7 +1,7 @@
diff --git a/web/templates/settings/admin_emoji_list.hbs b/web/templates/settings/admin_emoji_list.hbs
index bf628d149e..4f25f4860f 100644
--- a/web/templates/settings/admin_emoji_list.hbs
+++ b/web/templates/settings/admin_emoji_list.hbs
@@ -13,7 +13,7 @@
{{#if author}}
{{#with author}}
- {{> ../user_display_only_pill display_value=full_name img_src=avatar_url}}
+ {{> ../user_display_only_pill . display_value=full_name img_src=avatar_url}}
{{/with}}
{{else}}
{{t "Unknown author" }}
diff --git a/web/templates/settings/admin_tab.hbs b/web/templates/settings/admin_tab.hbs
index daf65b312a..6c24f298f7 100644
--- a/web/templates/settings/admin_tab.hbs
+++ b/web/templates/settings/admin_tab.hbs
@@ -3,28 +3,28 @@
{{> admin_settings_modals}}
-{{> organization_profile_admin }}
+{{> organization_profile_admin . }}
-{{> organization_settings_admin }}
+{{> organization_settings_admin . }}
-{{> organization_permissions_admin }}
+{{> organization_permissions_admin . }}
-{{> organization_user_settings_defaults }}
+{{> organization_user_settings_defaults . }}
-{{> emoji_settings_admin }}
+{{> emoji_settings_admin . }}
-{{> user_list_admin }}
+{{> user_list_admin . }}
-{{> bot_list_admin }}
+{{> bot_list_admin . }}
-{{> default_streams_list_admin }}
+{{> default_streams_list_admin . }}
-{{> auth_methods_settings_admin }}
+{{> auth_methods_settings_admin . }}
-{{> linkifier_settings_admin }}
+{{> linkifier_settings_admin . }}
-{{> playground_settings_admin }}
+{{> playground_settings_admin . }}
-{{> profile_field_settings_admin }}
+{{> profile_field_settings_admin . }}
-{{> data_exports_admin }}
+{{> data_exports_admin . }}
diff --git a/web/templates/settings/edit_custom_profile_field_form.hbs b/web/templates/settings/edit_custom_profile_field_form.hbs
index b67582154a..5a935e8034 100644
--- a/web/templates/settings/edit_custom_profile_field_form.hbs
+++ b/web/templates/settings/edit_custom_profile_field_form.hbs
@@ -14,7 +14,7 @@
{{#each choices}}
- {{> profile_field_choice }}
+ {{> profile_field_choice . }}
{{/each}}
diff --git a/web/templates/settings/organization_permissions_admin.hbs b/web/templates/settings/organization_permissions_admin.hbs
index 8cc312528e..9943d13097 100644
--- a/web/templates/settings/organization_permissions_admin.hbs
+++ b/web/templates/settings/organization_permissions_admin.hbs
@@ -71,7 +71,7 @@
setting_name="realm_can_create_public_channel_group"
label=(t 'Who can create public channels')}}
- {{> upgrade_tip_widget }}
+ {{> upgrade_tip_widget . }}
{{> settings_checkbox
setting_name="realm_enable_spectator_access"
prefix="id_"
diff --git a/web/templates/settings/organization_profile_admin.hbs b/web/templates/settings/organization_profile_admin.hbs
index 262985ab9d..fdd316dc9a 100644
--- a/web/templates/settings/organization_profile_admin.hbs
+++ b/web/templates/settings/organization_profile_admin.hbs
@@ -58,7 +58,7 @@
{{t "Organization logo" }}
{{> ../help_link_widget link="/help/create-your-organization-profile#add-a-wide-logo" }}
- {{> upgrade_tip_widget }}
+ {{> upgrade_tip_widget . }}
{{t "A wide image (200×25 pixels) for the upper left corner of the app." }}
diff --git a/web/templates/settings/organization_settings_admin.hbs b/web/templates/settings/organization_settings_admin.hbs
index 374fd8d7d1..d5d427585d 100644
--- a/web/templates/settings/organization_settings_admin.hbs
+++ b/web/templates/settings/organization_settings_admin.hbs
@@ -75,7 +75,7 @@
{{> settings_save_discard_widget section_name="message-retention" }}
- {{> upgrade_tip_widget }}
+ {{> upgrade_tip_widget . }}
- {{> preferences prefix="realm_" for_realm_settings=true full_name=full_name}}
+ {{> preferences . prefix="realm_" for_realm_settings=true full_name=full_name}}
- {{> notification_settings prefix="realm_" for_realm_settings=true}}
+ {{> notification_settings . prefix="realm_" for_realm_settings=true}}
diff --git a/web/templates/settings/user_notification_settings.hbs b/web/templates/settings/user_notification_settings.hbs
index 32e71b029f..0625a23e67 100644
--- a/web/templates/settings/user_notification_settings.hbs
+++ b/web/templates/settings/user_notification_settings.hbs
@@ -1,3 +1,3 @@
- {{> notification_settings prefix="user_" for_realm_settings=false}}
+ {{> notification_settings . prefix="user_" for_realm_settings=false}}
diff --git a/web/templates/settings/user_preferences.hbs b/web/templates/settings/user_preferences.hbs
index 579b40b4b6..7e6bbc03a8 100644
--- a/web/templates/settings/user_preferences.hbs
+++ b/web/templates/settings/user_preferences.hbs
@@ -1,3 +1,3 @@
- {{> preferences prefix="user_" for_realm_settings=false}}
+ {{> preferences . prefix="user_" for_realm_settings=false}}
diff --git a/web/templates/settings_tab.hbs b/web/templates/settings_tab.hbs
index c0f637a532..2510bf2951 100644
--- a/web/templates/settings_tab.hbs
+++ b/web/templates/settings_tab.hbs
@@ -1,13 +1,13 @@
- {{> settings/profile_settings }}
+ {{> settings/profile_settings . }}
- {{> settings/account_settings }}
+ {{> settings/account_settings . }}
- {{> settings/user_preferences }}
+ {{> settings/user_preferences . }}
- {{> settings/user_notification_settings }}
+ {{> settings/user_notification_settings . }}
- {{> settings/bot_settings }}
+ {{> settings/bot_settings . }}
{{> settings/alert_word_settings }}
diff --git a/web/templates/single_message.hbs b/web/templates/single_message.hbs
index 93a5a9aac7..4153d34ace 100644
--- a/web/templates/single_message.hbs
+++ b/web/templates/single_message.hbs
@@ -10,7 +10,7 @@
- {{> message_body}}
+ {{> message_body .}}
{{!-- message_edit_form.hbs is inserted here when editing a message. --}}
diff --git a/web/templates/stream_settings/browse_streams_list.hbs b/web/templates/stream_settings/browse_streams_list.hbs
index b9e30171e4..b26b93c7ea 100644
--- a/web/templates/stream_settings/browse_streams_list.hbs
+++ b/web/templates/stream_settings/browse_streams_list.hbs
@@ -1,3 +1,3 @@
{{#each subscriptions}}
- {{> browse_streams_list_item }}
+ {{> browse_streams_list_item . }}
{{/each}}
diff --git a/web/templates/stream_settings/browse_streams_list_item.hbs b/web/templates/stream_settings/browse_streams_list_item.hbs
index 8265cb3f7e..8bd34043c6 100644
--- a/web/templates/stream_settings/browse_streams_list_item.hbs
+++ b/web/templates/stream_settings/browse_streams_list_item.hbs
@@ -47,12 +47,12 @@
{{/if}}
- {{> subscription_setting_icon }}
+ {{> subscription_setting_icon . }}
{{name}}
- {{> subscriber_count}}
+ {{> subscriber_count .}}
diff --git a/web/templates/stream_settings/new_stream_user.hbs b/web/templates/stream_settings/new_stream_user.hbs
index 3ca12022ec..695104b3dc 100644
--- a/web/templates/stream_settings/new_stream_user.hbs
+++ b/web/templates/stream_settings/new_stream_user.hbs
@@ -1,6 +1,6 @@
- {{> ../user_display_only_pill display_value=full_name strikethrough=soft_removed is_active=true}}
+ {{> ../user_display_only_pill . display_value=full_name strikethrough=soft_removed is_active=true}}
{{#if email}}
{{email}}
diff --git a/web/templates/stream_settings/stream_creation_form.hbs b/web/templates/stream_settings/stream_creation_form.hbs
index 3e024c2cc0..eb003286ee 100644
--- a/web/templates/stream_settings/stream_creation_form.hbs
+++ b/web/templates/stream_settings/stream_creation_form.hbs
@@ -25,7 +25,7 @@
- {{> stream_types
+ {{> stream_types .
stream_post_policy=stream_post_policy_values.everyone.code
is_stream_edit=false
can_remove_subscribers_setting_widget_name="new_stream_can_remove_subscribers_group" }}
diff --git a/web/templates/stream_settings/stream_member_list_entry.hbs b/web/templates/stream_settings/stream_member_list_entry.hbs
index bfff63963a..89215c52e8 100644
--- a/web/templates/stream_settings/stream_member_list_entry.hbs
+++ b/web/templates/stream_settings/stream_member_list_entry.hbs
@@ -1,6 +1,6 @@
- {{> ../user_display_only_pill display_value=name is_active=true}}
+ {{> ../user_display_only_pill . display_value=name is_active=true}}
{{#if email}}
{{email}}
diff --git a/web/templates/stream_settings/stream_members.hbs b/web/templates/stream_settings/stream_members.hbs
index 587654d4b6..8a999fb10a 100644
--- a/web/templates/stream_settings/stream_members.hbs
+++ b/web/templates/stream_settings/stream_members.hbs
@@ -5,7 +5,7 @@
- {{> add_subscribers_form}}
+ {{> add_subscribers_form .}}
@@ -17,7 +17,7 @@
- {{> stream_members_table}}
+ {{> stream_members_table .}}
{{/render_subscribers}}
diff --git a/web/templates/stream_settings/stream_settings.hbs b/web/templates/stream_settings/stream_settings.hbs
index 9888f9366e..d6b7b5b24f 100644
--- a/web/templates/stream_settings/stream_settings.hbs
+++ b/web/templates/stream_settings/stream_settings.hbs
@@ -36,7 +36,7 @@
{{#with sub}}
- {{> stream_settings_tip}}
+ {{> stream_settings_tip .}}
- {{> stream_types
+ {{> stream_types .
stream_post_policy_values=../stream_post_policy_values
stream_privacy_policy_values=../stream_privacy_policy_values
stream_privacy_policy=../stream_privacy_policy
@@ -79,7 +79,7 @@
{{#with sub}}
- {{> ../creator_details}}
+ {{> ../creator_details .}}
{{t "Channel ID"}}
@@ -154,7 +154,7 @@
{{#with sub}}
- {{> stream_members}}
+ {{> stream_members .}}
{{/with}}
diff --git a/web/templates/stream_settings/stream_settings_overlay.hbs b/web/templates/stream_settings/stream_settings_overlay.hbs
index dd0a8da80a..ccbe9132de 100644
--- a/web/templates/stream_settings/stream_settings_overlay.hbs
+++ b/web/templates/stream_settings/stream_settings_overlay.hbs
@@ -76,7 +76,7 @@
{{!-- edit stream here --}}
- {{> stream_creation_form }}
+ {{> stream_creation_form . }}
diff --git a/web/templates/stream_settings/stream_types.hbs b/web/templates/stream_settings/stream_types.hbs
index 8cab380d48..2e8b75c455 100644
--- a/web/templates/stream_settings/stream_types.hbs
+++ b/web/templates/stream_settings/stream_types.hbs
@@ -28,7 +28,7 @@
{{#if ask_to_announce_stream}}
- {{>announce_stream_checkbox }}
+ {{>announce_stream_checkbox . }}
{{/if}}
@@ -78,7 +78,7 @@
{{> ../help_link_widget link="/help/message-retention-policy" }}
- {{> ../settings/upgrade_tip_widget}}
+ {{> ../settings/upgrade_tip_widget .}}
- {{> stream_privacy }}
+ {{> stream_privacy . }}
{{name}}
diff --git a/web/templates/typing_notifications.hbs b/web/templates/typing_notifications.hbs
index 065fd3f39d..dceed7f467 100644
--- a/web/templates/typing_notifications.hbs
+++ b/web/templates/typing_notifications.hbs
@@ -4,7 +4,7 @@
{{t "Several people are typing…" }}
{{else}}
{{#each users}}
- {{> typing_notification}}
+ {{> typing_notification .}}
{{/each}}
{{/if}}
diff --git a/web/templates/user_group_settings/new_user_group_subgroup.hbs b/web/templates/user_group_settings/new_user_group_subgroup.hbs
index 28a79d4a3c..506dc56d98 100644
--- a/web/templates/user_group_settings/new_user_group_subgroup.hbs
+++ b/web/templates/user_group_settings/new_user_group_subgroup.hbs
@@ -1,6 +1,6 @@
- {{> ../user_group_display_only_pill strikethrough=soft_removed}}
+ {{> ../user_group_display_only_pill . strikethrough=soft_removed}}
{{#if soft_removed}}
diff --git a/web/templates/user_group_settings/user_group_members.hbs b/web/templates/user_group_settings/user_group_members.hbs
index 53dee8a992..9b8c891954 100644
--- a/web/templates/user_group_settings/user_group_members.hbs
+++ b/web/templates/user_group_settings/user_group_members.hbs
@@ -4,7 +4,7 @@
- {{> add_members_form}}
+ {{> add_members_form .}}
@@ -16,6 +16,6 @@
- {{> user_group_members_table}}
+ {{> user_group_members_table .}}
diff --git a/web/templates/user_group_settings/user_group_settings.hbs b/web/templates/user_group_settings/user_group_settings.hbs
index becad93c58..647593e33c 100644
--- a/web/templates/user_group_settings/user_group_settings.hbs
+++ b/web/templates/user_group_settings/user_group_settings.hbs
@@ -59,7 +59,7 @@
- {{> ../creator_details }}
+ {{> ../creator_details . }}
{{t "User group ID"}}
@@ -70,7 +70,7 @@
- {{> user_group_members}}
+ {{> user_group_members .}}
diff --git a/web/templates/user_group_settings/user_group_settings_overlay.hbs b/web/templates/user_group_settings/user_group_settings_overlay.hbs
index 79909373cf..bd55291a6d 100644
--- a/web/templates/user_group_settings/user_group_settings_overlay.hbs
+++ b/web/templates/user_group_settings/user_group_settings_overlay.hbs
@@ -63,7 +63,7 @@
{{!-- edit user group here --}}
- {{> user_group_creation_form }}
+ {{> user_group_creation_form . }}
diff --git a/web/templates/user_group_settings/user_group_subgroup_entry.hbs b/web/templates/user_group_settings/user_group_subgroup_entry.hbs
index 1b6d913f72..eb900fd448 100644
--- a/web/templates/user_group_settings/user_group_subgroup_entry.hbs
+++ b/web/templates/user_group_settings/user_group_subgroup_entry.hbs
@@ -1,6 +1,6 @@
- {{> ../user_group_display_only_pill}}
+ {{> ../user_group_display_only_pill .}}
{{#if can_edit}}
diff --git a/web/templates/user_stream_list_item.hbs b/web/templates/user_stream_list_item.hbs
index 46dcc6f25f..afa4f0a3d5 100644
--- a/web/templates/user_stream_list_item.hbs
+++ b/web/templates/user_stream_list_item.hbs
@@ -1,7 +1,7 @@
- {{> stream_privacy }}
+ {{> stream_privacy . }}
{{name}}
diff --git a/web/tests/lib/handlebars.cjs b/web/tests/lib/handlebars.cjs
index cdaa2ab9dc..17de8bbd51 100644
--- a/web/tests/lib/handlebars.cjs
+++ b/web/tests/lib/handlebars.cjs
@@ -24,7 +24,12 @@ hb.JavaScriptCompiler = ZJavaScriptCompiler;
function compile_hbs(module, filename) {
const code = fs.readFileSync(filename, "utf8");
- const pc = hb.precompile(code, {preventIndent: true, srcName: filename, strict: true});
+ const pc = hb.precompile(code, {
+ preventIndent: true,
+ srcName: filename,
+ strict: true,
+ explicitPartialContext: true,
+ });
const node = new SourceNode();
node.add([
'const Handlebars = require("handlebars/runtime.js");\n',
diff --git a/web/webpack.config.ts b/web/webpack.config.ts
index 1ed4401fdd..11b507a317 100644
--- a/web/webpack.config.ts
+++ b/web/webpack.config.ts
@@ -182,6 +182,7 @@ const config = (
precompileOptions: {
knownHelpersOnly: true,
strict: true,
+ explicitPartialContext: true,
},
preventIndent: true,
// This replaces relative image resources with