Skip to content

Commit

Permalink
Implemented toolbarType option
Browse files Browse the repository at this point in the history
Closes #33
  • Loading branch information
Kir-Antipov committed Apr 20, 2021
1 parent 645c1f6 commit 4c4d784
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 1 deletion.
26 changes: 26 additions & 0 deletions src/fixers/css/toolbar-css-fixer.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import Fixer from "@fixers/fixer";
import settings from "@utils/settings";
import ToolbarType from "@utils/toolbar-type";

/**
* Adjusts the thickness of the toolbars.
*/
export default class ToolbarCSSFixer extends Fixer {
async isApplieble() {
return await settings.useOldCSS;
}

async apply() {
// TODO: turn this into actual CSS
switch (await settings.toolbarType) {
case ToolbarType.OldSchool:
document.documentElement.style.setProperty("--box-header-padding", "10.6px 12px");
break;
case ToolbarType.FatAsHeck:
document.documentElement.style.setProperty("--box-header-padding", "16px");
break;
default:
break;
}
}
}
2 changes: 2 additions & 0 deletions src/fixers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import LightHeaderCSSFixer from "./css/light-header-css-fixer";
import PreloaderCSSFixer from "./css/preloader-css-fixer";
import StickyReadmeHeaderCSSFixer from "./css/sticky-readme-header-css-fixer";
import CombinedOldReadmeCSSFixer from "./css/combined-old-readme-css-fixer";
import ToolbarCSSFixer from "./css/toolbar-css-fixer";
import PreloaderStartFixer from "./global/preloader-start-fixer";
import ScriptSettingsFixer from "./settings/script-settings-fixer";
import ContainerFixer from "./repository/container-fixer";
Expand Down Expand Up @@ -40,6 +41,7 @@ const fixers: Fixer[] = [
new OldSchoolCSSFixer(),
new LightHeaderCSSFixer(),
new CombinedOldReadmeCSSFixer(),
new ToolbarCSSFixer(),
new StickyReadmeHeaderCSSFixer(),
new ScriptSettingsFixer(),
new PreloaderStartFixer(),
Expand Down
6 changes: 5 additions & 1 deletion src/ui/styles/global/box.scss
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
:root {
--box-header-padding: 8px 12px;
}

.Box {
border-radius: $border-radius !important;

Expand All @@ -14,7 +18,7 @@
}

.Box-row, .Box-header, .Box-body {
padding: 8px 12px;
padding: var(--box-header-padding);
}

.Box-header .ml-n1 {
Expand Down
2 changes: 2 additions & 0 deletions src/utils/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import config from "@config";
import Engine from "@utils/engine";
import ReadmeHeaderType from "./readme-header-type";
import SettingsProperty from "./settings-property";
import ToolbarType from "./toolbar-type";

/**
* Represents script settings.
Expand All @@ -22,6 +23,7 @@ class Settings extends Array<SettingsProperty> {
enableStickyReadmeHeader = new SettingsProperty("enableStickyReadmeHeader", "Enable sticky readme header", "This will make readme header sticky.", false);
readmeHeaderType = new SettingsProperty("readmeHeaderType", "Readme header's type", `"${ReadmeHeaderType.New}" represents the latest header design.\n"${ReadmeHeaderType.CombinedNew}" represents the latest header design, but with a book octicon in use.\n"${ReadmeHeaderType.CombinedOld}" represents an old school design, but with the new functionality.\n"${ReadmeHeaderType.Old}" represents an old school design.`, ReadmeHeaderType.CombinedOld, [ReadmeHeaderType.New, ReadmeHeaderType.CombinedNew, ReadmeHeaderType.CombinedOld, ReadmeHeaderType.Old]);
mainBranchName = new SettingsProperty("mainBranchName", "Main branch name", "Here you can specify default name of the main branch.", "main");
toolbarType = new SettingsProperty("toolbarType", "Toolbar type", "Adjusts the thickness of the toolbars.", ToolbarType.Slim, [ToolbarType.Slim, ToolbarType.OldSchool, ToolbarType.FatAsHeck]);
engine = new SettingsProperty("engine", `Engine that powers ${config.displayName}`, `"${Engine.Original}" engine completely replaces the GitHub navigation system with dynamic page loading.\n"${Engine.Pjax}" engine was designed to be compatible with other scripts/extensions (e.g. "Refined GitHub") and is based on listening for pjax events.`, Engine.Pjax, [Engine.Original, Engine.Pjax]);

constructor() {
Expand Down
10 changes: 10 additions & 0 deletions src/utils/toolbar-type.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* Toolbar type
*/
enum ToolbarType {
Slim = "Slim",
OldSchool = "Old school",
FatAsHeck = "Wasting space",
}

export default ToolbarType;

0 comments on commit 4c4d784

Please sign in to comment.