mirror of https://github.com/jetkvm/kvm.git
				
				
				
			formatting
This commit is contained in:
		
							parent
							
								
									4f1ec38af1
								
							
						
					
					
						commit
						dade7ca564
					
				| 
						 | 
					@ -729,23 +729,23 @@ export default function SettingsSidebar() {
 | 
				
			||||||
                        </p>
 | 
					                        </p>
 | 
				
			||||||
                        <div>
 | 
					                        <div>
 | 
				
			||||||
                          <Button
 | 
					                          <Button
 | 
				
			||||||
                              size="MD"
 | 
					                            size="MD"
 | 
				
			||||||
                              theme="light"
 | 
					                            theme="light"
 | 
				
			||||||
                              text="De-register from Cloud"
 | 
					                            text="De-register from Cloud"
 | 
				
			||||||
                              className="text-red-600"
 | 
					                            className="text-red-600"
 | 
				
			||||||
                              onClick={() => {
 | 
					                            onClick={() => {
 | 
				
			||||||
                                if (deviceId) {
 | 
					                              if (deviceId) {
 | 
				
			||||||
                                  if (
 | 
					                                if (
 | 
				
			||||||
                                      window.confirm(
 | 
					                                    window.confirm(
 | 
				
			||||||
                                          "Are you sure you want to de-register this device?",
 | 
					                                        "Are you sure you want to de-register this device?",
 | 
				
			||||||
                                      )
 | 
					                                    )
 | 
				
			||||||
                                  ) {
 | 
					                                ) {
 | 
				
			||||||
                                    deregisterDevice();
 | 
					                                  deregisterDevice();
 | 
				
			||||||
                                  }
 | 
					 | 
				
			||||||
                                } else {
 | 
					 | 
				
			||||||
                                  notifications.error("No device ID available");
 | 
					 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
                              }}
 | 
					                              } else {
 | 
				
			||||||
 | 
					                                notifications.error("No device ID available");
 | 
				
			||||||
 | 
					                              }
 | 
				
			||||||
 | 
					                            }}
 | 
				
			||||||
                          />
 | 
					                          />
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                      </div>
 | 
					                      </div>
 | 
				
			||||||
| 
						 | 
					@ -759,8 +759,8 @@ export default function SettingsSidebar() {
 | 
				
			||||||
            <>
 | 
					            <>
 | 
				
			||||||
              <div className="pb-2 space-y-4">
 | 
					              <div className="pb-2 space-y-4">
 | 
				
			||||||
                <SectionHeader
 | 
					                <SectionHeader
 | 
				
			||||||
                    title="Local Access"
 | 
					                  title="Local Access"
 | 
				
			||||||
                    description="Manage the mode of local access to the device"
 | 
					                  description="Manage the mode of local access to the device"
 | 
				
			||||||
                />
 | 
					                />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                <div className="space-y-4">
 | 
					                <div className="space-y-4">
 | 
				
			||||||
| 
						 | 
					@ -780,30 +780,30 @@ export default function SettingsSidebar() {
 | 
				
			||||||
                        />
 | 
					                        />
 | 
				
			||||||
                    ) : (
 | 
					                    ) : (
 | 
				
			||||||
                        <Button
 | 
					                        <Button
 | 
				
			||||||
                            size="SM"
 | 
					                          size="SM"
 | 
				
			||||||
                            theme="light"
 | 
					                          theme="light"
 | 
				
			||||||
                            text="Enable Password"
 | 
					                          text="Enable Password"
 | 
				
			||||||
                            onClick={() => {
 | 
					                          onClick={() => {
 | 
				
			||||||
                              setLocalAuthModalView("createPassword");
 | 
					                            setLocalAuthModalView("createPassword");
 | 
				
			||||||
                              setIsLocalAuthDialogOpen(true);
 | 
					                            setIsLocalAuthDialogOpen(true);
 | 
				
			||||||
                            }}
 | 
					                          }}
 | 
				
			||||||
                        />
 | 
					                        />
 | 
				
			||||||
                    )}
 | 
					                    )}
 | 
				
			||||||
                  </SettingsItem>
 | 
					                  </SettingsItem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                  {localDevice?.authMode === "password" && (
 | 
					                  {localDevice?.authMode === "password" && (
 | 
				
			||||||
                      <SettingsItem
 | 
					                      <SettingsItem
 | 
				
			||||||
                          title="Change Password"
 | 
					                        title="Change Password"
 | 
				
			||||||
                          description="Update your device access password"
 | 
					                        description="Update your device access password"
 | 
				
			||||||
                      >
 | 
					                      >
 | 
				
			||||||
                        <Button
 | 
					                        <Button
 | 
				
			||||||
                            size="SM"
 | 
					                          size="SM"
 | 
				
			||||||
                            theme="light"
 | 
					                          theme="light"
 | 
				
			||||||
                            text="Change Password"
 | 
					                          text="Change Password"
 | 
				
			||||||
                            onClick={() => {
 | 
					                          onClick={() => {
 | 
				
			||||||
                              setLocalAuthModalView("updatePassword");
 | 
					                            setLocalAuthModalView("updatePassword");
 | 
				
			||||||
                              setIsLocalAuthDialogOpen(true);
 | 
					                            setIsLocalAuthDialogOpen(true);
 | 
				
			||||||
                            }}
 | 
					                          }}
 | 
				
			||||||
                        />
 | 
					                        />
 | 
				
			||||||
                      </SettingsItem>
 | 
					                      </SettingsItem>
 | 
				
			||||||
                  )}
 | 
					                  )}
 | 
				
			||||||
| 
						 | 
					@ -814,31 +814,31 @@ export default function SettingsSidebar() {
 | 
				
			||||||
        ) : null}
 | 
					        ) : null}
 | 
				
			||||||
        <div className="pb-2 space-y-4">
 | 
					        <div className="pb-2 space-y-4">
 | 
				
			||||||
          <SectionHeader
 | 
					          <SectionHeader
 | 
				
			||||||
              title="Updates"
 | 
					            title="Updates"
 | 
				
			||||||
              description="Manage software updates and version information"
 | 
					            description="Manage software updates and version information"
 | 
				
			||||||
          />
 | 
					          />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          <div className="space-y-4">
 | 
					          <div className="space-y-4">
 | 
				
			||||||
            <SettingsItem
 | 
					            <SettingsItem
 | 
				
			||||||
                title="Auto Update"
 | 
					              title="Auto Update"
 | 
				
			||||||
                description="Automatically update the device to the latest version"
 | 
					              description="Automatically update the device to the latest version"
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
              <Checkbox
 | 
					              <Checkbox
 | 
				
			||||||
                  checked={autoUpdate}
 | 
					                checked={autoUpdate}
 | 
				
			||||||
                  onChange={e => {
 | 
					                onChange={e => {
 | 
				
			||||||
                    handleAutoUpdateChange(e.target.checked);
 | 
					                  handleAutoUpdateChange(e.target.checked);
 | 
				
			||||||
                  }}
 | 
					                }}
 | 
				
			||||||
              />
 | 
					              />
 | 
				
			||||||
            </SettingsItem>
 | 
					            </SettingsItem>
 | 
				
			||||||
            <SettingsItem
 | 
					            <SettingsItem
 | 
				
			||||||
                title="Dev Channel Updates"
 | 
					              title="Dev Channel Updates"
 | 
				
			||||||
                description="Receive early updates from the development channel"
 | 
					              description="Receive early updates from the development channel"
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
              <Checkbox
 | 
					              <Checkbox
 | 
				
			||||||
                  checked={devChannel}
 | 
					                checked={devChannel}
 | 
				
			||||||
                  onChange={e => {
 | 
					                onChange={e => {
 | 
				
			||||||
                    handleDevChannelChange(e.target.checked);
 | 
					                  handleDevChannelChange(e.target.checked);
 | 
				
			||||||
                  }}
 | 
					                }}
 | 
				
			||||||
              />
 | 
					              />
 | 
				
			||||||
            </SettingsItem>
 | 
					            </SettingsItem>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
| 
						 | 
					@ -846,33 +846,33 @@ export default function SettingsSidebar() {
 | 
				
			||||||
        <div className="h-[1px] w-full bg-slate-800/10 dark:bg-slate-300/20"/>
 | 
					        <div className="h-[1px] w-full bg-slate-800/10 dark:bg-slate-300/20"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <SectionHeader
 | 
					        <SectionHeader
 | 
				
			||||||
            title="Appearance"
 | 
					          title="Appearance"
 | 
				
			||||||
            description="Customize the look and feel of the application"
 | 
					          description="Customize the look and feel of the application"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <SettingsItem title="Theme" description="Choose your preferred color theme">
 | 
					        <SettingsItem title="Theme" description="Choose your preferred color theme">
 | 
				
			||||||
          <SelectMenuBasic
 | 
					          <SelectMenuBasic
 | 
				
			||||||
              size="SM"
 | 
					            size="SM"
 | 
				
			||||||
              label=""
 | 
					            label=""
 | 
				
			||||||
              value={currentTheme}
 | 
					            value={currentTheme}
 | 
				
			||||||
              options={[
 | 
					            options={[
 | 
				
			||||||
                {value: "system", label: "System"},
 | 
					              {value: "system", label: "System"},
 | 
				
			||||||
                {value: "light", label: "Light"},
 | 
					              {value: "light", label: "Light"},
 | 
				
			||||||
                {value: "dark", label: "Dark"},
 | 
					              {value: "dark", label: "Dark"},
 | 
				
			||||||
              ]}
 | 
					            ]}
 | 
				
			||||||
              onChange={e => {
 | 
					            onChange={e => {
 | 
				
			||||||
                setCurrentTheme(e.target.value);
 | 
					              setCurrentTheme(e.target.value);
 | 
				
			||||||
                handleThemeChange(e.target.value);
 | 
					              handleThemeChange(e.target.value);
 | 
				
			||||||
              }}
 | 
					            }}
 | 
				
			||||||
          />
 | 
					          />
 | 
				
			||||||
        </SettingsItem>
 | 
					        </SettingsItem>
 | 
				
			||||||
        <SettingsItem title="Device Name" description="Set your device name">
 | 
					        <SettingsItem title="Device Name" description="Set your device name">
 | 
				
			||||||
          <InputFieldWithLabel
 | 
					          <InputFieldWithLabel
 | 
				
			||||||
              required
 | 
					            required
 | 
				
			||||||
              label=""
 | 
					            label=""
 | 
				
			||||||
              placeholder="Enter Device Name"
 | 
					            placeholder="Enter Device Name"
 | 
				
			||||||
              description={`DNS Name: ${nameConfig.dns}`}
 | 
					            description={`DNS Name: ${nameConfig.dns}`}
 | 
				
			||||||
              defaultValue={nameConfig.name}
 | 
					            defaultValue={nameConfig.name}
 | 
				
			||||||
              onChange={e => handleDeviceNameChange(e.target.value)}
 | 
					            onChange={e => handleDeviceNameChange(e.target.value)}
 | 
				
			||||||
          />
 | 
					          />
 | 
				
			||||||
        </SettingsItem>
 | 
					        </SettingsItem>
 | 
				
			||||||
        <div className="flex items-center gap-x-2">
 | 
					        <div className="flex items-center gap-x-2">
 | 
				
			||||||
| 
						 | 
					@ -892,40 +892,40 @@ export default function SettingsSidebar() {
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <SettingsItem title="Display Brightness" description="Set the brightness of the display">
 | 
					        <SettingsItem title="Display Brightness" description="Set the brightness of the display">
 | 
				
			||||||
          <SelectMenuBasic
 | 
					          <SelectMenuBasic
 | 
				
			||||||
              size="SM"
 | 
					            size="SM"
 | 
				
			||||||
              label=""
 | 
					            label=""
 | 
				
			||||||
              value={settings.backlightSettings.max_brightness.toString()}
 | 
					            value={settings.backlightSettings.max_brightness.toString()}
 | 
				
			||||||
              options={[
 | 
					            options={[
 | 
				
			||||||
                {value: "0", label: "Off"},
 | 
					              {value: "0", label: "Off"},
 | 
				
			||||||
                {value: "10", label: "Low"},
 | 
					              {value: "10", label: "Low"},
 | 
				
			||||||
                {value: "35", label: "Medium"},
 | 
					              {value: "35", label: "Medium"},
 | 
				
			||||||
                {value: "64", label: "High"},
 | 
					              {value: "64", label: "High"},
 | 
				
			||||||
              ]}
 | 
					            ]}
 | 
				
			||||||
              onChange={e => {
 | 
					            onChange={e => {
 | 
				
			||||||
                settings.backlightSettings.max_brightness = parseInt(e.target.value)
 | 
					              settings.backlightSettings.max_brightness = parseInt(e.target.value)
 | 
				
			||||||
                handleBacklightSettingsChange(settings.backlightSettings);
 | 
					              handleBacklightSettingsChange(settings.backlightSettings);
 | 
				
			||||||
              }}
 | 
					            }}
 | 
				
			||||||
          />
 | 
					          />
 | 
				
			||||||
        </SettingsItem>
 | 
					        </SettingsItem>
 | 
				
			||||||
        {settings.backlightSettings.max_brightness != 0 && (
 | 
					        {settings.backlightSettings.max_brightness != 0 && (
 | 
				
			||||||
            <>
 | 
					            <>
 | 
				
			||||||
              <SettingsItem title="Dim Display After" description="Set how long to wait before dimming the display">
 | 
					              <SettingsItem title="Dim Display After" description="Set how long to wait before dimming the display">
 | 
				
			||||||
                <SelectMenuBasic
 | 
					                <SelectMenuBasic
 | 
				
			||||||
                    size="SM"
 | 
					                  size="SM"
 | 
				
			||||||
                    label=""
 | 
					                  label=""
 | 
				
			||||||
                    value={settings.backlightSettings.dim_after.toString()}
 | 
					                  value={settings.backlightSettings.dim_after.toString()}
 | 
				
			||||||
                    options={[
 | 
					                  options={[
 | 
				
			||||||
                      {value: "0", label: "Never"},
 | 
					                    {value: "0", label: "Never"},
 | 
				
			||||||
                      {value: "60", label: "1 Minute"},
 | 
					                    {value: "60", label: "1 Minute"},
 | 
				
			||||||
                      {value: "300", label: "5 Minutes"},
 | 
					                    {value: "300", label: "5 Minutes"},
 | 
				
			||||||
                      {value: "600", label: "10 Minutes"},
 | 
					                    {value: "600", label: "10 Minutes"},
 | 
				
			||||||
                      {value: "1800", label: "30 Minutes"},
 | 
					                    {value: "1800", label: "30 Minutes"},
 | 
				
			||||||
                      {value: "3600", label: "1 Hour"},
 | 
					                    {value: "3600", label: "1 Hour"},
 | 
				
			||||||
                    ]}
 | 
					                  ]}
 | 
				
			||||||
                    onChange={e => {
 | 
					                  onChange={e => {
 | 
				
			||||||
                      settings.backlightSettings.dim_after = parseInt(e.target.value)
 | 
					                    settings.backlightSettings.dim_after = parseInt(e.target.value)
 | 
				
			||||||
                      handleBacklightSettingsChange(settings.backlightSettings);
 | 
					                    handleBacklightSettingsChange(settings.backlightSettings);
 | 
				
			||||||
                    }}
 | 
					                  }}
 | 
				
			||||||
                />
 | 
					                />
 | 
				
			||||||
              </SettingsItem>
 | 
					              </SettingsItem>
 | 
				
			||||||
              <SettingsItem title="Turn off Display After"
 | 
					              <SettingsItem title="Turn off Display After"
 | 
				
			||||||
| 
						 | 
					@ -955,39 +955,39 @@ export default function SettingsSidebar() {
 | 
				
			||||||
        <div className="h-[1px] w-full bg-slate-800/10 dark:bg-slate-300/20"/>
 | 
					        <div className="h-[1px] w-full bg-slate-800/10 dark:bg-slate-300/20"/>
 | 
				
			||||||
        <div className="pb-2 space-y-4">
 | 
					        <div className="pb-2 space-y-4">
 | 
				
			||||||
          <SectionHeader
 | 
					          <SectionHeader
 | 
				
			||||||
              title="Advanced"
 | 
					            title="Advanced"
 | 
				
			||||||
              description="Access additional settings for troubleshooting and customization"
 | 
					            description="Access additional settings for troubleshooting and customization"
 | 
				
			||||||
          />
 | 
					          />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          <div className="pb-4 space-y-4">
 | 
					          <div className="pb-4 space-y-4">
 | 
				
			||||||
            <SettingsItem
 | 
					            <SettingsItem
 | 
				
			||||||
                title="Developer Mode"
 | 
					              title="Developer Mode"
 | 
				
			||||||
                description="Enable advanced features for developers"
 | 
					              description="Enable advanced features for developers"
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
              <Checkbox
 | 
					              <Checkbox
 | 
				
			||||||
                  checked={settings.developerMode}
 | 
					                checked={settings.developerMode}
 | 
				
			||||||
                  onChange={e => handleDevModeChange(e.target.checked)}
 | 
					                onChange={e => handleDevModeChange(e.target.checked)}
 | 
				
			||||||
              />
 | 
					              />
 | 
				
			||||||
            </SettingsItem>
 | 
					            </SettingsItem>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            {settings.developerMode && (
 | 
					            {settings.developerMode && (
 | 
				
			||||||
                <div className="space-y-4">
 | 
					                <div className="space-y-4">
 | 
				
			||||||
                  <TextAreaWithLabel
 | 
					                  <TextAreaWithLabel
 | 
				
			||||||
                      label="SSH Public Key"
 | 
					                    label="SSH Public Key"
 | 
				
			||||||
                      value={sshKey || ""}
 | 
					                    value={sshKey || ""}
 | 
				
			||||||
                      rows={3}
 | 
					                    rows={3}
 | 
				
			||||||
                      onChange={e => handleSSHKeyChange(e.target.value)}
 | 
					                    onChange={e => handleSSHKeyChange(e.target.value)}
 | 
				
			||||||
                      placeholder="Enter your SSH public key"
 | 
					                    placeholder="Enter your SSH public key"
 | 
				
			||||||
                  />
 | 
					                  />
 | 
				
			||||||
                  <p className="text-xs text-slate-600 dark:text-slate-400">
 | 
					                  <p className="text-xs text-slate-600 dark:text-slate-400">
 | 
				
			||||||
                    The default SSH user is <strong>root</strong>.
 | 
					                    The default SSH user is <strong>root</strong>.
 | 
				
			||||||
                  </p>
 | 
					                  </p>
 | 
				
			||||||
                  <div className="flex items-center gap-x-2">
 | 
					                  <div className="flex items-center gap-x-2">
 | 
				
			||||||
                    <Button
 | 
					                    <Button
 | 
				
			||||||
                        size="SM"
 | 
					                      size="SM"
 | 
				
			||||||
                        theme="primary"
 | 
					                      theme="primary"
 | 
				
			||||||
                        text="Update SSH Key"
 | 
					                      text="Update SSH Key"
 | 
				
			||||||
                        onClick={handleUpdateSSHKey}
 | 
					                      onClick={handleUpdateSSHKey}
 | 
				
			||||||
                    />
 | 
					                    />
 | 
				
			||||||
                  </div>
 | 
					                  </div>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
| 
						 | 
					@ -1007,18 +1007,18 @@ export default function SettingsSidebar() {
 | 
				
			||||||
            {settings.debugMode && (
 | 
					            {settings.debugMode && (
 | 
				
			||||||
                <>
 | 
					                <>
 | 
				
			||||||
                  <SettingsItem
 | 
					                  <SettingsItem
 | 
				
			||||||
                      title="USB Emulation"
 | 
					                    title="USB Emulation"
 | 
				
			||||||
                      description="Control the USB emulation state"
 | 
					                    description="Control the USB emulation state"
 | 
				
			||||||
                  >
 | 
					                  >
 | 
				
			||||||
                    <Button
 | 
					                    <Button
 | 
				
			||||||
                        size="SM"
 | 
					                      size="SM"
 | 
				
			||||||
                        theme="light"
 | 
					                      theme="light"
 | 
				
			||||||
                        text={
 | 
					                      text={
 | 
				
			||||||
                          usbEmulationEnabled
 | 
					                        usbEmulationEnabled
 | 
				
			||||||
                              ? "Disable USB Emulation"
 | 
					                            ? "Disable USB Emulation"
 | 
				
			||||||
                              : "Enable USB Emulation"
 | 
					                            : "Enable USB Emulation"
 | 
				
			||||||
                        }
 | 
					                      }
 | 
				
			||||||
                        onClick={() => handleUsbEmulationToggle(!usbEmulationEnabled)}
 | 
					                      onClick={() => handleUsbEmulationToggle(!usbEmulationEnabled)}
 | 
				
			||||||
                    />
 | 
					                    />
 | 
				
			||||||
                  </SettingsItem>
 | 
					                  </SettingsItem>
 | 
				
			||||||
                </>
 | 
					                </>
 | 
				
			||||||
| 
						 | 
					@ -1029,13 +1029,13 @@ export default function SettingsSidebar() {
 | 
				
			||||||
                    description="Reset the configuration file to its default state. This will log you out of the device."
 | 
					                    description="Reset the configuration file to its default state. This will log you out of the device."
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
                  <Button
 | 
					                  <Button
 | 
				
			||||||
                      size="SM"
 | 
					                    size="SM"
 | 
				
			||||||
                      theme="light"
 | 
					                    theme="light"
 | 
				
			||||||
                      text="Reset Config"
 | 
					                    text="Reset Config"
 | 
				
			||||||
                      onClick={() => {
 | 
					                    onClick={() => {
 | 
				
			||||||
                        handleResetConfig();
 | 
					                      handleResetConfig();
 | 
				
			||||||
                        window.location.reload();
 | 
					                      window.location.reload();
 | 
				
			||||||
                      }}
 | 
					                    }}
 | 
				
			||||||
                  />
 | 
					                  />
 | 
				
			||||||
                </SettingsItem>
 | 
					                </SettingsItem>
 | 
				
			||||||
            )}
 | 
					            )}
 | 
				
			||||||
| 
						 | 
					@ -1043,11 +1043,11 @@ export default function SettingsSidebar() {
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <LocalAuthPasswordDialog
 | 
					      <LocalAuthPasswordDialog
 | 
				
			||||||
          open={isLocalAuthDialogOpen}
 | 
					        open={isLocalAuthDialogOpen}
 | 
				
			||||||
          setOpen={x => {
 | 
					        setOpen={x => {
 | 
				
			||||||
            // Revalidate the current route to refresh the local device status and dependent UI components
 | 
					          // Revalidate the current route to refresh the local device status and dependent UI components
 | 
				
			||||||
            revalidator.revalidate();
 | 
					          revalidator.revalidate();
 | 
				
			||||||
            setIsLocalAuthDialogOpen(x);
 | 
					          setIsLocalAuthDialogOpen(x);
 | 
				
			||||||
        }}
 | 
					        }}
 | 
				
			||||||
      />
 | 
					      />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue