import sharp from "sharp";
import { favIconPngUrl, favIconUrl } from "../../shared/config";
import { ILemmyConfig, IsoDataOptionalSite } from "../../shared/interfaces";
+import { buildThemeList } from "./build-themes-list";
import { fetchIconPng } from "./fetch-icon-png";
const customHtmlHeader = process.env["LEMMY_UI_CUSTOM_HTML_HEADER"] || "";
) {
const site = isoData.site_res;
+ const fallbackTheme = `<link rel="stylesheet" type="text/css" href="/css/themes/${
+ (await buildThemeList())[0]
+ }.css" />`;
+
if (!appleTouchIcon) {
appleTouchIcon = site?.site_view.site.icon
? `data:image/png;base64,${sharp(
<link rel="stylesheet" type="text/css" href="/static/styles/styles.css" />
<!-- Current theme and more -->
- ${helmet.link.toString()}
+ ${helmet.link.toString() || fallbackTheme}
</head>
<option disabled aria-hidden="true">
─────
</option>
+ <option value={"TopHour"}>{I18NextService.i18n.t("top_hour")}</option>
+ <option value={"TopSixHour"}>
+ {I18NextService.i18n.t("top_six_hours")}
+ </option>
+ <option value={"TopTwelveHour"}>
+ {I18NextService.i18n.t("top_twelve_hours")}
+ </option>
<option value={"TopDay"}>{I18NextService.i18n.t("top_day")}</option>
<option value={"TopWeek"}>{I18NextService.i18n.t("top_week")}</option>
<option value={"TopMonth"}>
updateCommunityBlock,
updatePersonBlock,
} from "@utils/app";
-import { restoreScrollPosition, saveScrollPosition } from "@utils/browser";
import {
getPageFromString,
getQueryParams,
setupTippy();
}
- componentWillUnmount() {
- saveScrollPosition(this.context);
- }
-
static async fetchInitialData({
client,
path,
});
}
- restoreScrollPosition(this.context);
setupTippy();
}
showLocal,
updatePersonBlock,
} from "@utils/app";
-import { restoreScrollPosition, saveScrollPosition } from "@utils/browser";
import {
getPageFromString,
getQueryParams,
setupTippy();
}
- componentWillUnmount() {
- saveScrollPosition(this.context);
- }
-
static async fetchInitialData({
client,
auth,
});
}
- restoreScrollPosition(this.context);
setupTippy();
}
): CommentSortType {
switch (sort) {
case "TopAll":
+ case "TopHour":
+ case "TopSixHour":
+ case "TopTwelveHour":
case "TopDay":
case "TopWeek":
case "TopMonth":
export default function restoreScrollPosition(context: any) {
const path: string = context.router.route.location.pathname;
const y = Number(sessionStorage.getItem(`scrollPosition_${path}`));
+
window.scrollTo(0, y);
}
export default function saveScrollPosition(context: any) {
const path: string = context.router.route.location.pathname;
const y = window.scrollY;
+
sessionStorage.setItem(`scrollPosition_${path}`, y.toString());
}