feat: enable custom wallpapers on about:newtab

This commit is contained in:
Alex Kontos
2025-08-06 12:28:03 +01:00
parent d3245b8e81
commit 75b846b90f

View File

@@ -129,19 +129,22 @@ export class WallpaperFeed {
} }
// retrieving all records in collection // retrieving all records in collection
const records = await this.wallpaperClient.get(); let records = [];
if (!records?.length) { let baseAttachmentURL = "";
return;
}
const customWallpaperEnabled = Services.prefs.getBoolPref( const customWallpaperEnabled = Services.prefs.getBoolPref(
PREF_WALLPAPERS_CUSTOM_WALLPAPER_ENABLED PREF_WALLPAPERS_CUSTOM_WALLPAPER_ENABLED
); );
const baseAttachmentURL = await lazy.Utils.baseAttachmentsURL(); const customColorEnabled = Services.prefs.getBoolPref(
"browser.newtabpage.activity-stream.newtabWallpapers.customColor.enabled"
);
const wallpapers = [ let wallpapers = [];
...records.map(record => {
// Process records if we have any
if (records && records.length > 0 && baseAttachmentURL) {
wallpapers = records.map(record => {
return { return {
...record, ...record,
...(record.attachment ...(record.attachment
@@ -151,16 +154,42 @@ export class WallpaperFeed {
: {}), : {}),
category: record.category || "", category: record.category || "",
}; };
}), });
]; }
const categories = [ // Build categories
let categories = [
...new Set( ...new Set(
wallpapers.map(wallpaper => wallpaper.category).filter(Boolean) wallpapers.map(wallpaper => wallpaper.category).filter(Boolean)
), ),
...(customWallpaperEnabled ? ["custom-wallpaper"] : []), // Conditionally add custom wallpaper input
]; ];
// Always add solid-colors if custom color is enabled and not already present
if (customColorEnabled && !categories.includes("solid-colors")) {
categories.push("solid-colors");
// Add default solid colors if we have no wallpapers
if (wallpapers.length === 0) {
wallpapers = [
{ title: "red-30", solid_color: "#ff7e8e", category: "solid-colors" },
{ title: "orange-30", solid_color: "#ff8f31", category: "solid-colors" },
{ title: "yellow-30", solid_color: "#f1af00", category: "solid-colors" },
{ title: "green-30", solid_color: "#61cc69", category: "solid-colors" },
{ title: "cyan-30", solid_color: "#00cadb", category: "solid-colors" },
{ title: "blue-30", solid_color: "#60adff", category: "solid-colors" },
{ title: "violet-30", solid_color: "#b295ff", category: "solid-colors"},
{ title: "purple-30", solid_color: "#d98dfa", category: "solid-colors"},
{ title: "pink-30", solid_color: "#ff7ead", category: "solid-colors"}
];
}
}
// Always add custom-wallpaper if enabled
if (customWallpaperEnabled) {
categories.push("custom-wallpaper");
}
// Dispatch even with empty wallpapers as long as we have categories
this.store.dispatch( this.store.dispatch(
ac.BroadcastToContent({ ac.BroadcastToContent({
type: at.WALLPAPERS_SET, type: at.WALLPAPERS_SET,