Browse Source

refac: chat controls

Timothy Jaeryang Baek 5 months ago
parent
commit
149eea2377
1 changed files with 66 additions and 64 deletions
  1. 66 64
      src/lib/components/chat/Settings/General.svelte

+ 66 - 64
src/lib/components/chat/Settings/General.svelte

@@ -243,67 +243,68 @@
 			/>
 		</div>
 
-		<div class="mt-2 space-y-3 pr-1.5">
-			<div class="flex justify-between items-center text-sm">
-				<div class="  font-medium">{$i18n.t('Advanced Parameters')}</div>
-				<button
-					class=" text-xs font-medium text-gray-500"
-					type="button"
-					on:click={() => {
-						showAdvanced = !showAdvanced;
-					}}>{showAdvanced ? $i18n.t('Hide') : $i18n.t('Show')}</button
-				>
-			</div>
-
-			{#if showAdvanced}
-				<AdvancedParams admin={$user?.role === 'admin'} bind:params />
-				<hr class=" dark:border-gray-850" />
-
-				<div class=" py-1 w-full justify-between">
-					<div class="flex w-full justify-between">
-						<div class=" self-center text-xs font-medium">{$i18n.t('Keep Alive')}</div>
-
-						<button
-							class="p-1 px-3 text-xs flex rounded transition"
-							type="button"
-							on:click={() => {
-								keepAlive = keepAlive === null ? '5m' : null;
-							}}
-						>
-							{#if keepAlive === null}
-								<span class="ml-2 self-center"> {$i18n.t('Default')} </span>
-							{:else}
-								<span class="ml-2 self-center"> {$i18n.t('Custom')} </span>
-							{/if}
-						</button>
-					</div>
+		{#if $user.role === 'admin' || $user?.permissions.chat?.controls}
+			<div class="mt-2 space-y-3 pr-1.5">
+				<div class="flex justify-between items-center text-sm">
+					<div class="  font-medium">{$i18n.t('Advanced Parameters')}</div>
+					<button
+						class=" text-xs font-medium text-gray-500"
+						type="button"
+						on:click={() => {
+							showAdvanced = !showAdvanced;
+						}}>{showAdvanced ? $i18n.t('Hide') : $i18n.t('Show')}</button
+					>
+				</div>
 
-					{#if keepAlive !== null}
-						<div class="flex mt-1 space-x-2">
-							<input
-								class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
-								type="text"
-								placeholder={$i18n.t("e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.")}
-								bind:value={keepAlive}
-							/>
+				{#if showAdvanced}
+					<AdvancedParams admin={$user?.role === 'admin'} bind:params />
+					<hr class=" dark:border-gray-850" />
+
+					<div class=" py-1 w-full justify-between">
+						<div class="flex w-full justify-between">
+							<div class=" self-center text-xs font-medium">{$i18n.t('Keep Alive')}</div>
+
+							<button
+								class="p-1 px-3 text-xs flex rounded transition"
+								type="button"
+								on:click={() => {
+									keepAlive = keepAlive === null ? '5m' : null;
+								}}
+							>
+								{#if keepAlive === null}
+									<span class="ml-2 self-center"> {$i18n.t('Default')} </span>
+								{:else}
+									<span class="ml-2 self-center"> {$i18n.t('Custom')} </span>
+								{/if}
+							</button>
 						</div>
-					{/if}
-				</div>
 
-				<div>
-					<div class=" py-1 flex w-full justify-between">
-						<div class=" self-center text-sm font-medium">{$i18n.t('Request Mode')}</div>
-
-						<button
-							class="p-1 px-3 text-xs flex rounded transition"
-							on:click={() => {
-								toggleRequestFormat();
-							}}
-						>
-							{#if requestFormat === ''}
-								<span class="ml-2 self-center"> {$i18n.t('Default')} </span>
-							{:else if requestFormat === 'json'}
-								<!-- <svg
+						{#if keepAlive !== null}
+							<div class="flex mt-1 space-x-2">
+								<input
+									class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
+									type="text"
+									placeholder={$i18n.t("e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.")}
+									bind:value={keepAlive}
+								/>
+							</div>
+						{/if}
+					</div>
+
+					<div>
+						<div class=" py-1 flex w-full justify-between">
+							<div class=" self-center text-sm font-medium">{$i18n.t('Request Mode')}</div>
+
+							<button
+								class="p-1 px-3 text-xs flex rounded transition"
+								on:click={() => {
+									toggleRequestFormat();
+								}}
+							>
+								{#if requestFormat === ''}
+									<span class="ml-2 self-center"> {$i18n.t('Default')} </span>
+								{:else if requestFormat === 'json'}
+									<!-- <svg
                             xmlns="http://www.w3.org/2000/svg"
                             viewBox="0 0 20 20"
                             fill="currentColor"
@@ -313,13 +314,14 @@
                                 d="M10 2a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 0110 2zM10 15a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 0110 15zM10 7a3 3 0 100 6 3 3 0 000-6zM15.657 5.404a.75.75 0 10-1.06-1.06l-1.061 1.06a.75.75 0 001.06 1.06l1.06-1.06zM6.464 14.596a.75.75 0 10-1.06-1.06l-1.06 1.06a.75.75 0 001.06 1.06l1.06-1.06zM18 10a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0118 10zM5 10a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 015 10zM14.596 15.657a.75.75 0 001.06-1.06l-1.06-1.061a.75.75 0 10-1.06 1.06l1.06 1.06zM5.404 6.464a.75.75 0 001.06-1.06l-1.06-1.06a.75.75 0 10-1.061 1.06l1.06 1.06z"
                             />
                         </svg> -->
-								<span class="ml-2 self-center"> {$i18n.t('JSON')} </span>
-							{/if}
-						</button>
+									<span class="ml-2 self-center"> {$i18n.t('JSON')} </span>
+								{/if}
+							</button>
+						</div>
 					</div>
-				</div>
-			{/if}
-		</div>
+				{/if}
+			</div>
+		{/if}
 	</div>
 
 	<div class="flex justify-end pt-3 text-sm font-medium">