launch and manage windows terminal instances with raycast
raycast raycast-extension

add support for aliases in folders

still thinking about whether folders should have an alias too...

+46 -18
+46 -18
src/open-profile.tsx
··· 17 17 import os from "node:os"; 18 18 import { useEffect, useState } from "react"; 19 19 import { Preferences } from "./types/preferences"; 20 - import { Profile, WindowsTerminalSettings, Folder, FolderEntry } from "./types/windows-terminal"; 20 + import { Profile, WindowsTerminalSettings, Folder } from "./types/windows-terminal"; 21 21 import { getAllProfilePreferences, getProfilePreferences } from "./utils/profile-preferences"; 22 22 import React from "react"; 23 23 ··· 162 162 } 163 163 164 164 function FolderView(props: { folder: Folder; profiles: Profile[] }) { 165 + const [getAliases, setAliases] = useState<{ [key: string]: { alias: string } }>({}); 166 + 167 + useEffect(() => { 168 + async function load() { 169 + const profiles = await getAllProfilePreferences(); 170 + setAliases(profiles); 171 + } 172 + load(); 173 + }, []); 174 + 165 175 return ( 166 176 <List searchBarPlaceholder={`Search in ${props.folder.name}...`}> 167 177 <List.Section title={props.folder.name}> ··· 174 184 <List.Item 175 185 key={item.profile} 176 186 title={props.profiles.filter((profile) => profile.guid === item.profile)[0].name} 177 - actions={<Actions profile={props.profiles.filter((profile) => profile.guid === item.profile)[0]} />} 187 + accessories={ 188 + getAliases[props.profiles.filter((profile) => profile.guid === item.profile)[0].guid] 189 + ? [ 190 + { 191 + tag: { 192 + value: 193 + getAliases[props.profiles.filter((profile) => profile.guid === item.profile)[0].guid] 194 + .alias, 195 + }, 196 + }, 197 + ] 198 + : undefined 199 + } 200 + actions={ 201 + <Actions 202 + profile={props.profiles.filter((profile) => profile.guid === item.profile)[0]} 203 + alias={ 204 + getAliases[props.profiles.filter((profile) => profile.guid === item.profile)[0].guid] 205 + ? getAliases[props.profiles.filter((profile) => profile.guid === item.profile)[0].guid] 206 + .alias 207 + : "" 208 + } 209 + /> 210 + } 178 211 icon={ 179 212 props.profiles.filter((profile) => profile.guid === item.profile)[0].source === 180 213 "Windows.Terminal.SSH" ··· 205 238 : props.profiles.filter((profile) => profile.guid === item.profile)[0].guid === 206 239 "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}" 207 240 ? ["cmd"] 208 - : [] 241 + : [ 242 + getAliases[props.profiles.filter((profile) => profile.guid === item.profile)[0].guid] 243 + ? getAliases[props.profiles.filter((profile) => profile.guid === item.profile)[0].guid] 244 + .alias 245 + : "", 246 + ] 209 247 } 210 248 /> 211 249 ); ··· 361 399 ? ["pwsh", "ps", "posh", getAliases[item.guid] ? getAliases[item.guid].alias : ""] 362 400 : item.guid === "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}" 363 401 ? ["cmd", getAliases[item.guid] ? getAliases[item.guid].alias : ""] 364 - : [ 365 - getAliases[item.guid] ? getAliases[item.guid].alias : "" 366 - ] 402 + : [getAliases[item.guid] ? getAliases[item.guid].alias : ""] 367 403 } 368 404 accessories={getAliases[item.guid] ? [{ tag: { value: getAliases[item.guid].alias } }] : undefined} 369 - actions={ 370 - <Actions profile={item} alias={getAliases[item.guid] ? getAliases[item.guid].alias : ""} /> 371 - } 405 + actions={<Actions profile={item} alias={getAliases[item.guid] ? getAliases[item.guid].alias : ""} />} 372 406 /> 373 407 ))} 374 408 </List.Section> ··· 385 419 title={item.name} 386 420 keywords={[getAliases[item.guid] ? getAliases[item.guid].alias : ""]} 387 421 accessories={getAliases[item.guid] ? [{ tag: { value: getAliases[item.guid].alias } }] : undefined} 388 - actions={ 389 - <Actions profile={item} alias={getAliases[item.guid] ? getAliases[item.guid].alias : ""} /> 390 - } 422 + actions={<Actions profile={item} alias={getAliases[item.guid] ? getAliases[item.guid].alias : ""} />} 391 423 /> 392 424 ))} 393 425 </List.Section> ··· 405 437 title={item.name} 406 438 keywords={[getAliases[item.guid] ? getAliases[item.guid].alias : ""]} 407 439 accessories={getAliases[item.guid] ? [{ tag: { value: getAliases[item.guid].alias } }] : undefined} 408 - actions={ 409 - <Actions profile={item} alias={getAliases[item.guid] ? getAliases[item.guid].alias : ""} /> 410 - } 440 + actions={<Actions profile={item} alias={getAliases[item.guid] ? getAliases[item.guid].alias : ""} />} 411 441 /> 412 442 ))} 413 443 </List.Section> ··· 430 460 title={item.name} 431 461 keywords={[getAliases[item.guid] ? getAliases[item.guid].alias : ""]} 432 462 accessories={getAliases[item.guid] ? [{ tag: { value: getAliases[item.guid].alias } }] : undefined} 433 - actions={ 434 - <Actions profile={item} alias={getAliases[item.guid] ? getAliases[item.guid].alias : ""} /> 435 - } 463 + actions={<Actions profile={item} alias={getAliases[item.guid] ? getAliases[item.guid].alias : ""} />} 436 464 /> 437 465 ))} 438 466 </List.Section>