feat: add legal page with configuration options (#724)

* Addconfig entries for legal notice

* Add legal route handling to middleware

* Make legal notice public

* Add legal category to config sidebar

* Add legal notice page

* Add German translations for legal notice and configuration options

* Replace legal page with separate imprint and privacy pages

* Update middleware

* Add footer component

* Update legal text descriptions to indicate Markdown support again

* Refactor footer layout

* Add zIndex to footer component

* improve mobile layout

* run formatter

---------

Co-authored-by: Elias Schneider <login@eliasschneider.com>
This commit is contained in:
Aaron
2025-01-02 17:29:01 +01:00
committed by GitHub
parent 53c05518df
commit df1ffaa2bc
12 changed files with 297 additions and 15 deletions

View File

@@ -11,12 +11,16 @@ const multipliers = {
GiB: 1024 ** 3,
TB: 1000 ** 4,
TiB: 1024 ** 4,
}
};
const units = (["B", "KB", "KiB", "MB", "MiB", "GB", "GiB", "TB", "TiB"] as const).map(unit => ({ label: unit, value: unit }));
const units = (
["B", "KB", "KiB", "MB", "MiB", "GB", "GiB", "TB", "TiB"] as const
).map((unit) => ({ label: unit, value: unit }));
function getLargestApplicableUnit(value: number) {
return units.findLast(unit => value % multipliers[unit.value] === 0) || units[0];
return (
units.findLast((unit) => value % multipliers[unit.value] === 0) || units[0]
);
}
const FileSizeInput = ({
@@ -46,8 +50,9 @@ const FileSizeInput = ({
marginRight: -2,
},
}}
onChange={event => {
const unit = event.currentTarget.value as typeof units[number]["value"];
onChange={(event) => {
const unit = event.currentTarget
.value as (typeof units)[number]["value"];
setUnit(unit);
onChange(multipliers[unit] * inputValue);
}}
@@ -63,7 +68,7 @@ const FileSizeInput = ({
precision={0}
rightSection={unitSelect}
rightSectionWidth={76}
onChange={value => {
onChange={(value) => {
const inputVal = value || 0;
setInputValue(inputVal);
onChange(multipliers[unit] * inputVal);