mirror of
				https://github.com/smartfrigde/armcord.git
				synced 2024-08-14 23:56:58 +00:00 
			
		
		
		
	Re-do the setup page (#98)
This commit is contained in:
		
							parent
							
								
									46ddad4044
								
							
						
					
					
						commit
						eca41529d4
					
				
					 5 changed files with 258 additions and 186 deletions
				
			
		
							
								
								
									
										
											BIN
										
									
								
								src/content/css/fonts/whitney_400.woff
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/content/css/fonts/whitney_400.woff
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -1,91 +1,148 @@ | |||
| /*CSS ONLY FOR INTERNAL USE (setup and loading)*/ | ||||
| @import url("https://armcord.smartfridge.space/logofont.css"); | ||||
| 
 | ||||
| /* Meta {{{ */ | ||||
| :root { | ||||
|     background-color: #2c2f33 !important; | ||||
|     --header-secondary: #b9bbbe !important; | ||||
|     --header-primary: #fff !important; | ||||
|     --background-tertiary: #202225 !important; | ||||
|     --background-primary: #282b30; | ||||
|     --background-secondary: rgba(255, 255, 255, 0.1); | ||||
|     --brand-experiment: #7289da; | ||||
|     --header-primary: #fff; | ||||
|     --text-muted: #72767d; | ||||
|     --font-primary: "Whitney"; | ||||
| } | ||||
| 
 | ||||
| @font-face { | ||||
|     font-family: Whitney; | ||||
|     font-weight: 400; | ||||
|     font-style: normal; | ||||
|     src: url(https://armcord.smartfridge.space/whitney_400.woff) format("woff"); | ||||
| } | ||||
| 
 | ||||
| html, | ||||
| body { | ||||
|     background-color: #2c2f33; | ||||
|     color: white; | ||||
|     overflow: hidden; | ||||
| 
 | ||||
|     margin: 0; | ||||
|     padding-top: 30px; | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
| 
 | ||||
|     background: var(--background-primary); | ||||
| 
 | ||||
|     display: flex; | ||||
|     flex-direction: column; | ||||
|     justify-content: center; | ||||
|     align-items: center; | ||||
| } | ||||
| 
 | ||||
| p { | ||||
|     color: white; | ||||
| * { | ||||
|     font-family: var(--font-primary), sans-serif; | ||||
| 
 | ||||
|     box-sizing: border-box; | ||||
|     user-select: none; | ||||
|     cursor: default; | ||||
| } | ||||
| /* }}} */ | ||||
| 
 | ||||
| /* Utility classes {{{ */ | ||||
| .hidden { | ||||
|     display: none !important; | ||||
| } | ||||
| .text-center { | ||||
|     text-align: center; | ||||
|     font-weight: 100; | ||||
|     font-family: Whitney, Helvetica Neue, Helvetica, Arial, sans-serif; | ||||
|     text-rendering: optimizeLegibility; | ||||
| } | ||||
| 
 | ||||
| .logo { | ||||
|     font-size: 0px; | ||||
|     text-align: center; | ||||
|     transform: translateY(-105%); | ||||
| } | ||||
| 
 | ||||
| .logo:before { | ||||
|     content: "ARM"; | ||||
|     color: #7289da; | ||||
|     font-weight: normal; | ||||
|     font-family: Helvetica, sans-serif; | ||||
|     font-size: 32px; | ||||
| } | ||||
| 
 | ||||
| .logo:after { | ||||
|     content: "Cord"; | ||||
|     color: #ffffff; | ||||
|     font-weight: normal; | ||||
|     font-family: Discordinated; | ||||
|     font-size: 32px; | ||||
| } | ||||
| 
 | ||||
| span { | ||||
|     text-align: center; | ||||
| } | ||||
| 
 | ||||
| .logo { | ||||
|     display: block; | ||||
|     margin-left: auto; | ||||
|     margin-right: auto; | ||||
|     max-height: 204px; | ||||
|     max-width: 204px; | ||||
|     transform: translateY(5%); | ||||
| } | ||||
| 
 | ||||
| .container { | ||||
|     position: fixed; | ||||
|     top: 50%; | ||||
|     left: 50%; | ||||
|     color: #fff; | ||||
|     transform: translate(-50%, -50%); | ||||
| } | ||||
| button#express { | ||||
|     margin-right: 84px; | ||||
| } | ||||
| button { | ||||
|     background-color: #7289da; | ||||
|     font-family: Whitney, "Helvetica Neue", Helvetica, Arial, sans-serif; | ||||
|     color: #ffffff; | ||||
|     padding: 4px; | ||||
|     border-radius: 5px; | ||||
|     margin-top: 5px; | ||||
| 
 | ||||
|     text-align: center; | ||||
|     border-style: none; | ||||
|     outline: none; | ||||
| } | ||||
| .setup-ask { | ||||
|     font-size: 20px; | ||||
| } | ||||
| 
 | ||||
| .center { | ||||
|     display: flex; | ||||
|     flex-direction: column; | ||||
|     justify-content: center; | ||||
|     align-items: center; | ||||
| } | ||||
| /* }}} */ | ||||
| 
 | ||||
| #setup { | ||||
|     display: flex; | ||||
|     flex-direction: column; | ||||
|     align-items: center; | ||||
| 
 | ||||
|     color: white; | ||||
| } | ||||
| 
 | ||||
| /* Warning {{{ */ | ||||
| #warning { | ||||
|     font-size: 1.5em; | ||||
|     font-weight: bold; | ||||
|     text-align: center; | ||||
|     margin-top: 10px; | ||||
|     margin-bottom: 10px; | ||||
| 
 | ||||
|     max-width: 328px; | ||||
|     background-color: rgba(255, 0, 0, 0.1); | ||||
| 
 | ||||
|     border: red solid 2px; | ||||
|     border-radius: 0.5rem; | ||||
| } | ||||
| #warning > p { | ||||
|     color: white; | ||||
|     font-weight: bold; | ||||
|     margin: 1rem; | ||||
| } | ||||
| /* }}} */ | ||||
| 
 | ||||
| /* Logo {{{ */ | ||||
| #logo { | ||||
|     display: flex; | ||||
|     flex-direction: row; | ||||
|     justify-content: center; | ||||
|     align-items: center; | ||||
| } | ||||
| #logo p:first-child { | ||||
|     color: #7289da; | ||||
|     margin: 0; | ||||
|     font-weight: normal; | ||||
|     font-family: Helvetica, sans-serif; | ||||
|     font-size: 32px; | ||||
| } | ||||
| #logo p:last-child { | ||||
|     color: white; | ||||
|     margin: 0; | ||||
|     font-weight: normal; | ||||
|     font-family: Discordinated; | ||||
|     font-size: 32px; | ||||
| } | ||||
| /* }}} */ | ||||
| 
 | ||||
| /* Buttons {{{ */ | ||||
| #buttons { | ||||
|     display: flex; | ||||
|     flex-direction: row; | ||||
|     justify-content: center; | ||||
|     align-items: center; | ||||
|     gap: 1rem; | ||||
| 
 | ||||
|     user-select: all !important; | ||||
| 
 | ||||
|     margin-top: 10px; | ||||
|     margin-bottom: 10px; | ||||
| } | ||||
| button { | ||||
|     background: var(--brand-experiment); | ||||
|     color: var(--header-primary); | ||||
| 
 | ||||
|     border: none; | ||||
|     border-radius: 4px; | ||||
| 
 | ||||
|     padding: 8px 20px; | ||||
| } | ||||
| button:hover { | ||||
|     background-color: #687dc6; | ||||
|     border-style: none; | ||||
|     outline: none; | ||||
|     filter: brightness(85%); | ||||
|     cursor: pointer; | ||||
| } | ||||
| /* }}} */ | ||||
| 
 | ||||
| /* Dropdowns {{{ */ | ||||
| select { | ||||
|     -webkit-appearance: button; | ||||
|     -moz-appearance: button; | ||||
|  | @ -106,6 +163,4 @@ select { | |||
|     text-overflow: ellipsis; | ||||
|     white-space: nowrap; | ||||
| } | ||||
| .center { | ||||
|     text-align: center; | ||||
| } | ||||
| /* }}} */ | ||||
|  |  | |||
|  | @ -1,134 +1,150 @@ | |||
| <!--- This is awful and should be replaced in later versions. Possibly based of current settings as of 3.1.0 version. If you have time please PR a better setup screen. ---> | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
|     <head> | ||||
|         <link rel="stylesheet" href="https://cdn.metroui.org.ua/v4/css/metro-all.min.css" /> | ||||
|         <meta charset="UTF-8" /> | ||||
|         <meta http-equiv="X-UA-Compatible" content="IE=edge" /> | ||||
|         <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
|         <title>ArmCord Setup</title> | ||||
|         <style> | ||||
|             @import url("css/setup.css"); | ||||
|         </style> | ||||
|     </head> | ||||
| 
 | ||||
|     <body> | ||||
|         <div class="container"> | ||||
|             <h1 class="logo"></h1> | ||||
|             <div id="warning" class="hidden"> | ||||
|                 <p>You appear to be offline. Please connect to the internet and restart ArmCord Setup.</p> | ||||
|             </div> | ||||
|             <div id="setup"> | ||||
|                 <p>Select what kind of setup you want to perform:</p> | ||||
|                 <button id="express" class="center">Express setup</button> | ||||
|                 <button id="full" class="center">Full setup</button> | ||||
|                 <div id="logo" class="hidden"> | ||||
|                     <p>ARM</p> | ||||
|                     <p>Cord</p> | ||||
|                 </div> | ||||
|                 <div id="page1" class="hidden"> | ||||
|                     <p>Select the type of setup you want to perform.</p> | ||||
|                     <div id="buttons"> | ||||
|                         <button id="express" class="center">Express</button> | ||||
|                         <button id="full" class="center">Full</button> | ||||
|                     </div> | ||||
|                 </div> | ||||
| 
 | ||||
|                 <div id="page2" class="hidden"> | ||||
|                     <p class="text-center setup-ask">Choose your Discord channel/instance:</p> | ||||
|                     <div class="center"> | ||||
|                         <select name="channel" id="channel" class="dropdown-button"> | ||||
|                             <option value="stable">Stable</option> | ||||
|                             <option value="canary">Canary</option> | ||||
|                             <option value="ptb">PTB</option> | ||||
|                             <option value="foss">Fosscord</option> | ||||
|                         </select> | ||||
|                     </div> | ||||
|                     <p class="text-center setup-ask">Should ArmCord handle client mods installation?</p> | ||||
|                     <div class="center"> | ||||
|                         <select name="csp" id="csp" class="dropdown-button"> | ||||
|                             <option value="true">Yes</option> | ||||
|                             <option value="false">No</option> | ||||
|                         </select> | ||||
|                     </div> | ||||
|                     <div id="buttons"> | ||||
|                         <button id="next" class="center">Next</button> | ||||
|                     </div> | ||||
|                 </div> | ||||
| 
 | ||||
|                 <div id="page3" class="hidden"> | ||||
|                     <p class="text-center setup-ask">Select a client mod you want to install:</p> | ||||
|                     <div class="center"> | ||||
|                         <select name="mod" id="mod" class="dropdown-button"> | ||||
|                             <option value="cumcord">Cumcord</option> | ||||
|                             <option value="goosemod">GooseMod</option> | ||||
|                             <option value="flicker">Flicker (Heavily WIP)</option> | ||||
|                         </select> | ||||
|                     </div> | ||||
|                     <p> | ||||
|                         Why not all of them? Having many client mods at the same time can cause issues. If you really | ||||
|                         want to do it though, check our documentation ;) | ||||
|                     </p> | ||||
|                     <div id="buttons"> | ||||
|                         <button id="next" class="center">Next</button> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
| 
 | ||||
|         <script> | ||||
|             function fade(element) { | ||||
|                 var op = 1; // initial opacity | ||||
|                 var timer = setInterval(function () { | ||||
|                     if (op <= 0.1) { | ||||
|                         clearInterval(timer); | ||||
|                         element.style.display = "none"; | ||||
|                     } | ||||
|                     element.style.opacity = op; | ||||
|                     element.style.filter = "alpha(opacity=" + op * 100 + ")"; | ||||
|                     op -= op * 0.1; | ||||
|                 }, 50); | ||||
|             // Accessors {{{ | ||||
|             let options = {}; | ||||
| 
 | ||||
|             let logo = document.getElementById("logo"); | ||||
|             logo.classList.remove("hidden"); | ||||
| 
 | ||||
|             let page1 = document.getElementById("page1"); | ||||
|             page1.classList.remove("hidden"); | ||||
|             page1.buttons = document.querySelectorAll("#page1 > #buttons > button"); | ||||
| 
 | ||||
|             // Connection check | ||||
|             let warning = document.getElementById("warning"); | ||||
|             if (window.navigator.onLine === false) { | ||||
|                 warning.classList.remove("hidden"); | ||||
|             } | ||||
| 
 | ||||
|             if (window.navigator.onLine === false) { | ||||
|                 document.getElementById("setup").innerHTML = | ||||
|                     "You appear to be offline. Please connect to the internet and restart ArmCord Setup."; | ||||
|             } else { | ||||
|                 console.log("Starting ArmCord Setup..."); | ||||
|                 document.getElementById("express").addEventListener("click", function () { | ||||
|             let page2 = document.getElementById("page2"); | ||||
|             let page3 = document.getElementById("page3"); | ||||
|             // }}} | ||||
| 
 | ||||
|             // Express | ||||
|             page1.buttons[0].addEventListener("click", () => { | ||||
|                 window.armcordinternal.saveSettings({ | ||||
|                     windowStyle: "default", | ||||
|                     channel: "stable", | ||||
|                     armcordCSP: true, | ||||
|                     minimizeToTray: true, | ||||
|                     automaticPatches: false, | ||||
|                     mods: "cumcord", | ||||
|                     blurType: "acrylic" | ||||
|                 }); | ||||
|                 setTimeout(() => window.armcordinternal.restart(), 5000); | ||||
|             }); | ||||
| 
 | ||||
|             // Full | ||||
|             page1.buttons[1].addEventListener("click", () => { | ||||
|                 page1.classList.add("hidden"); | ||||
|                 page2.classList.remove("hidden"); | ||||
|             }); | ||||
| 
 | ||||
|             page2.buttons = document.querySelectorAll("#page2 > #buttons > button"); | ||||
|             page2.buttons[0].addEventListener("click", () => { | ||||
|                 options.channel = document.getElementById("channel").value; | ||||
|                 options.csp = document.getElementById("csp").value; | ||||
|                 page2.classList.add("hidden"); | ||||
| 
 | ||||
|                 page3.buttons = document.querySelectorAll("#page3 > #buttons > button"); | ||||
|                 if (options.csp === "true") { | ||||
|                     page3.classList.remove("hidden"); | ||||
|                     page3.buttons[0].addEventListener("click", () => { | ||||
|                         options.mod = document.getElementById("mod").value; | ||||
|                         window.armcordinternal.saveSettings({ | ||||
|                             windowStyle: "default", | ||||
|                             channel: options.channel, | ||||
|                             armcordCSP: true, | ||||
|                             minimizeToTray: true, | ||||
|                             automaticPatches: false, | ||||
|                             mods: options.mod, | ||||
|                             blurType: "acrylic" | ||||
|                         }); | ||||
|                         setTimeout(() => window.armcordinternal.restart(), 500); | ||||
|                     }); | ||||
|                 } else { | ||||
|                     window.armcordinternal.saveSettings({ | ||||
|                         windowStyle: "default", | ||||
|                         channel: "stable", | ||||
|                         channel: options.channel, | ||||
|                         armcordCSP: true, | ||||
|                         minimizeToTray: true, | ||||
|                         automaticPatches: false, | ||||
|                         mods: "cumcord", | ||||
|                         blurType: "acrylic", | ||||
|                         inviteWebsocket: true, | ||||
|                         doneSetup: true | ||||
|                         mods: "none", | ||||
|                         blurType: "acrylic" | ||||
|                     }); | ||||
|                     fade(document.getElementById("setup")); | ||||
|                     setTimeout(function () { | ||||
|                         window.armcordinternal.restart(); | ||||
|                     }, 5000); | ||||
|                 }); | ||||
|                 document.getElementById("full").addEventListener("click", function () { | ||||
|                     document.getElementById("setup").innerHTML = ` | ||||
|         <p class="text-center setup-ask">Choose your Discord channel/instance:</p> | ||||
|     <div class="center"> | ||||
|       <select name="channel" id="channel" class="dropdown-button"> | ||||
|         <option value="stable">Stable</option> | ||||
|         <option value="canary">Canary</option> | ||||
|         <option value="ptb">PTB</option> | ||||
|         <option value="foss">Fosscord</option> | ||||
|       </select> | ||||
|       </div> | ||||
|       <p class="text-center setup-ask">Should ArmCord handle client mods installation?</p> | ||||
|     <div class="center"> | ||||
|       <select name="csp" id="csp" class="dropdown-button"> | ||||
|         <option value="true">Yes</option> | ||||
|         <option value="false">No</option> | ||||
|       </select> | ||||
|       </div> | ||||
|       <button id="next" class="center">Next</button> | ||||
|       `; | ||||
|                     document.getElementById("next").addEventListener("click", function () { | ||||
|                         var branch = document.getElementById("channel").value; | ||||
|                         var csp = document.getElementById("csp").value; | ||||
|                         if (csp === "true") { | ||||
|                             document.getElementById("setup").innerHTML = ` | ||||
|         <p class="text-center setup-ask">Select a client mod you want to install:</p> | ||||
|     <div class="center"> | ||||
|       <select name="mod" id="mod" class="dropdown-button"> | ||||
|         <option value="cumcord">Cumcord</option> | ||||
|         <option value="goosemod">GooseMod</option> | ||||
|         <option value="flicker">Flicker (Heavily WIP)</option> | ||||
|       </select> | ||||
|       </div> | ||||
|       <p>Why not all of them? Having many client mods at the same time can cause issues. If you really want to do it though, check our documentation ;)</p> | ||||
|       <button id="next" class="center">Next</button> | ||||
|       `; | ||||
|                             document.getElementById("next").addEventListener("click", function () { | ||||
|                                 var mod = document.getElementById("mod").value; | ||||
|                                 window.armcordinternal.saveSettings({ | ||||
|                                     windowStyle: "default", | ||||
|                                     channel: branch, | ||||
|                                     armcordCSP: true, | ||||
|                                     minimizeToTray: true, | ||||
|                                     automaticPatches: false, | ||||
|                                     mods: mod, | ||||
|                                     blurType: "acrylic", | ||||
|                                     inviteWebsocket: true, | ||||
|                                     doneSetup: true | ||||
|                                 }); | ||||
|                                 fade(document.getElementById("setup")); | ||||
|                                 setTimeout(function () { | ||||
|                                     window.armcordinternal.restart(); | ||||
|                                 }, 5000); | ||||
|                             }); | ||||
|                         } else { | ||||
|                             window.armcordinternal.saveSettings({ | ||||
|                                 windowStyle: "default", | ||||
|                                 channel: branch, | ||||
|                                 armcordCSP: true, | ||||
|                                 minimizeToTray: true, | ||||
|                                 automaticPatches: false, | ||||
|                                 mods: "none", | ||||
|                                 blurType: "acrylic", | ||||
|                                 inviteWebsocket: true, | ||||
|                                 doneSetup: true | ||||
|                             }); | ||||
|                             fade(document.getElementById("setup")); | ||||
|                             setTimeout(function () { | ||||
|                                 window.armcordinternal.restart(); | ||||
|                             }, 5000); | ||||
|                         } | ||||
|                     }); | ||||
|                 }); | ||||
|             } | ||||
|                     setTimeout(() => window.armcordinternal.restart(), 500); | ||||
|                 } | ||||
|             }); | ||||
|         </script> | ||||
|     </body> | ||||
| </html> | ||||
|  |  | |||
|  | @ -68,8 +68,8 @@ async function doAfterDefiningTheWindow() { | |||
| } | ||||
| export function createCustomWindow() { | ||||
|     mainWindow = new BrowserWindow({ | ||||
|         width: 300, | ||||
|         height: 350, | ||||
|         width: 390, | ||||
|         height: 470, | ||||
|         title: "ArmCord", | ||||
|         darkTheme: true, | ||||
|         icon: path.join(__dirname, "/assets/icon_transparent.png"), | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue