Skip to content

Commit c9f5147

Browse files
committed
fix: reset title element to previous value on removal
fixes #7656
1 parent 304d88e commit c9f5147

File tree

2 files changed

+14
-3
lines changed
  • packages/svelte/src

2 files changed

+14
-3
lines changed

packages/svelte/src/compiler/phases/3-transform/client/visitors/TitleElement.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,10 @@ export function TitleElement(node, context) {
1414
context.state
1515
);
1616

17-
const statement = b.stmt(b.assignment('=', b.id('$.document.title'), value));
17+
context.state.init.push(b.stmt(b.call('$.title', value)));
1818

1919
if (has_state) {
20+
const statement = b.stmt(b.assignment('=', b.id('$.document.title'), value));
2021
context.state.update.push(statement);
21-
} else {
22-
context.state.init.push(statement);
2322
}
2423
}

packages/svelte/src/internal/client/dom/elements/misc.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { teardown } from '../../reactivity/effects.js';
12
import { hydrating } from '../hydration.js';
23
import { clear_text_content, get_first_child } from '../operations.js';
34
import { queue_micro_task } from '../task.js';
@@ -56,3 +57,14 @@ export function add_form_reset_listener() {
5657
);
5758
}
5859
}
60+
61+
/**
62+
* @param {string} text
63+
*/
64+
export function title(text) {
65+
const previous = document.title;
66+
document.title = text;
67+
teardown(() => {
68+
document.title = previous;
69+
});
70+
}

0 commit comments

Comments
 (0)