fix(webmail): a new profile photo shows up everywhere at once
The photo endpoint was cached for five minutes with no revalidation, and only the settings page added a version to the URL, so the header, the message list and the reader kept the old photo until it expired. - every <Avatar> reads a per-address version (and refetches when it changes); saving or removing a photo bumps it, in this tab and the other open tabs - the server answers private, max-age=60, must-revalidate, so a stale copy lives for a minute at most and then costs one 304 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d82cf71f5b
commit
c0f556b190
6 files changed
+146
-4
No files matched your search
@@ -26,6 +26,7 @@ import { signatureToHtml, sanitizeSignature } from "../../../../lib/signature";
|
||||
import { buildSieve, parseSieve, type Rule, type RuleField, type RuleCondition, type RuleAction } from "../../../../lib/rules";
|
||||
import { useFolders } from "../../../../lib/useFolders";
|
||||
import { AvatarEditor } from "../../../../components/AvatarEditor";
|
||||
import { bumpAvatar } from "../../../../lib/avatarVersion";
|
||||
import { useAccount } from "../../../../lib/useAccount";
|
||||
import { moveTargets } from "../../../../lib/mailCounts";
|
||||
|
||||
@@ -357,8 +358,10 @@ export default function UserSettingsPage() {
|
||||
src={avatarSrc}
|
||||
onSaved={() => {
|
||||
// The query string changes so the browser fetches the new
|
||||
// photo instead of the one it already has under this URL.
|
||||
// photo instead of the one it already has under this URL;
|
||||
// bumpAvatar does the same for every <Avatar> on screen.
|
||||
setAvatarVersion((v) => v + 1);
|
||||
bumpAvatar(account?.email);
|
||||
}}
|
||||
/>
|
||||
</section>
|
||||
|
||||
Reference in new issue
Block a user