Fix: action panel (#83)

* fix: change action trigger hotkey on win and linux from control + k to alt + k

* chore: Update macOS build matrix to use macos-13 instead of macos-12

* feat: improve action panel, disable actions vimBindings
This commit is contained in:
Huakun Shen 2025-01-29 18:56:16 -05:00 committed by GitHub
parent 0bb59e4f66
commit 33e4451be2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 317 additions and 374 deletions

View File

@ -91,7 +91,7 @@ jobs:
run: | run: |
matrix="" matrix=""
if [ "${{ github.event_name }}" == "schedule" ]; then if [ "${{ github.event_name }}" == "schedule" ]; then
matrix="\"windows-latest\",\"ubuntu-22.04\",\"macos-14\",\"macos-12\"" matrix="\"windows-latest\",\"ubuntu-22.04\",\"macos-14\",\"macos-13\""
build_mode="" build_mode=""
build_path="release" build_path="release"
retention_days='1' retention_days='1'
@ -106,7 +106,7 @@ jobs:
matrix="${matrix}\"macos-14\"," matrix="${matrix}\"macos-14\","
fi fi
if [ "${{ inputs.platform_macos_x86_64 }}" == "true" ]; then if [ "${{ inputs.platform_macos_x86_64 }}" == "true" ]; then
matrix="${matrix}\"macos-12\"," matrix="${matrix}\"macos-13\","
fi fi
if [ -z "${matrix}" ]; then if [ -z "${matrix}" ]; then
matrix="\"windows-latest\"," matrix="\"windows-latest\","
@ -217,7 +217,7 @@ jobs:
run: mv target/${{ env.BUILD_PATH }}/bundle/dmg/*.dmg target/${{ env.BUILD_PATH }}/bundle/dmg/${{ env.FILE_PREFIX }}-aarch64.dmg run: mv target/${{ env.BUILD_PATH }}/bundle/dmg/*.dmg target/${{ env.BUILD_PATH }}/bundle/dmg/${{ env.FILE_PREFIX }}-aarch64.dmg
- name: Rename macos-x86_64 - name: Rename macos-x86_64
if: matrix.os == 'macos-12' if: matrix.os == 'macos-13'
run: mv target/${{ env.BUILD_PATH }}/bundle/dmg/*.dmg target/${{ env.BUILD_PATH }}/bundle/dmg/${{ env.FILE_PREFIX }}-amd64.dmg run: mv target/${{ env.BUILD_PATH }}/bundle/dmg/*.dmg target/${{ env.BUILD_PATH }}/bundle/dmg/${{ env.FILE_PREFIX }}-amd64.dmg
- name: Rename windows - name: Rename windows

View File

@ -273,8 +273,14 @@
keySet.has(_platform === "macos" ? "Meta" : "Control") && keySet.has(_platform === "macos" ? "Meta" : "Control") &&
keySet.has("k") keySet.has("k")
) { ) {
console.log("open action panel") // actionPanelOpen = true
actionPanelOpen = true setTimeout(() => {
console.log("toggle action panel")
actionPanelOpen = !actionPanelOpen
if (!actionPanelOpen) {
onActionPanelBlur()
}
}, 100)
} }
}) })

View File

@ -50,68 +50,11 @@ class ExtensionTemplate extends WorkerExtension {
} }
async load() { async load() {
clipboard.readText().then((text) => {
console.log("Clipboard text:", text)
})
kv.exists("test").then((exists) => {
console.log("KV exists:", exists)
})
kv.set("test", Math.random().toString()).then(() => {
return kv.get("test").then((value) => {
console.log("KV value:", value)
})
})
// console.log("Check screen capture permission:", await security.mac.checkScreenCapturePermission())
// await security.mac.revealSecurityPane("AllFiles")
// console.log(await security.mac.verifyFingerprint())
ui.setSearchBarPlaceholder("Search for items") ui.setSearchBarPlaceholder("Search for items")
ui.showLoadingBar(true) ui.showLoadingBar(true)
setTimeout(() => { setTimeout(() => {
ui.showLoadingBar(false) ui.showLoadingBar(false)
}, 2000) }, 2000)
const { rpcChannel, process, command } = await shell.createDenoRpcChannel<
{},
{
add(a: number, b: number): Promise<number>
subtract(a: number, b: number): Promise<number>
readImageMetadata(path: string): Promise<any>
batchReadImageMetadata: (paths: string[]) => Promise<any[]>
}
>(
"$EXTENSION/deno-src/rpc.ts",
[],
{
// allowEnv: ["npm_package_config_libvips"],
allowAllEnv: true,
// allowFfi: ["*sharp-darwin-arm64.node"],
allowAllFfi: true,
allowAllRead: true,
allowAllSys: true,
// allowRun: ["*exiftool"]
allowAllRun: true
},
{}
)
// const child = new Child(process.pid)
command.stdout.on("data", (data) => {
console.log("stdout", data.toString())
})
command.stderr.on("data", (data) => {
console.log("stderr", data.toString())
})
// await api
// .readImageMetadata("/Users/hacker/Pictures/3D-Image/pics/IMG_0767.jpeg")
// .then((data) => {
// console.log("metadata", data)
// })
// .catch((err) => {
// console.error("error", err)
// })
// await api.add(1, 2).then(console.log)
// await api.subtract(1, 2).then(console.log)
await process.kill()
const extPath = await path.extensionDir() const extPath = await path.extensionDir()
// console.log("Extension path:", extPath) // console.log("Extension path:", extPath)
const tagList = new List.ItemDetailMetadataTagList({ const tagList = new List.ItemDetailMetadataTagList({

View File

@ -1,10 +1,4 @@
export type Json = export type Json = string | number | boolean | null | { [key: string]: Json | undefined } | Json[]
| string
| number
| boolean
| null
| { [key: string]: Json | undefined }
| Json[]
export type Database = { export type Database = {
public: { public: {
@ -119,7 +113,7 @@ export type Database = {
isOneToOne: false isOneToOne: false
referencedRelation: "extensions" referencedRelation: "extensions"
referencedColumns: ["identifier"] referencedColumns: ["identifier"]
}, }
] ]
} }
extensions: { extensions: {
@ -236,7 +230,7 @@ export type Tables<
TableName extends PublicTableNameOrOptions extends { schema: keyof Database } TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
? keyof (Database[PublicTableNameOrOptions["schema"]]["Tables"] & ? keyof (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
Database[PublicTableNameOrOptions["schema"]]["Views"]) Database[PublicTableNameOrOptions["schema"]]["Views"])
: never = never, : never = never
> = PublicTableNameOrOptions extends { schema: keyof Database } > = PublicTableNameOrOptions extends { schema: keyof Database }
? (Database[PublicTableNameOrOptions["schema"]]["Tables"] & ? (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
Database[PublicTableNameOrOptions["schema"]]["Views"])[TableName] extends { Database[PublicTableNameOrOptions["schema"]]["Views"])[TableName] extends {
@ -244,10 +238,8 @@ export type Tables<
} }
? R ? R
: never : never
: PublicTableNameOrOptions extends keyof (PublicSchema["Tables"] & : PublicTableNameOrOptions extends keyof (PublicSchema["Tables"] & PublicSchema["Views"])
PublicSchema["Views"]) ? (PublicSchema["Tables"] & PublicSchema["Views"])[PublicTableNameOrOptions] extends {
? (PublicSchema["Tables"] &
PublicSchema["Views"])[PublicTableNameOrOptions] extends {
Row: infer R Row: infer R
} }
? R ? R
@ -255,12 +247,10 @@ export type Tables<
: never : never
export type TablesInsert< export type TablesInsert<
PublicTableNameOrOptions extends PublicTableNameOrOptions extends keyof PublicSchema["Tables"] | { schema: keyof Database },
| keyof PublicSchema["Tables"]
| { schema: keyof Database },
TableName extends PublicTableNameOrOptions extends { schema: keyof Database } TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"] ? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
: never = never, : never = never
> = PublicTableNameOrOptions extends { schema: keyof Database } > = PublicTableNameOrOptions extends { schema: keyof Database }
? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends { ? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends {
Insert: infer I Insert: infer I
@ -276,12 +266,10 @@ export type TablesInsert<
: never : never
export type TablesUpdate< export type TablesUpdate<
PublicTableNameOrOptions extends PublicTableNameOrOptions extends keyof PublicSchema["Tables"] | { schema: keyof Database },
| keyof PublicSchema["Tables"]
| { schema: keyof Database },
TableName extends PublicTableNameOrOptions extends { schema: keyof Database } TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"] ? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
: never = never, : never = never
> = PublicTableNameOrOptions extends { schema: keyof Database } > = PublicTableNameOrOptions extends { schema: keyof Database }
? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends { ? Database[PublicTableNameOrOptions["schema"]]["Tables"][TableName] extends {
Update: infer U Update: infer U
@ -297,12 +285,10 @@ export type TablesUpdate<
: never : never
export type Enums< export type Enums<
PublicEnumNameOrOptions extends PublicEnumNameOrOptions extends keyof PublicSchema["Enums"] | { schema: keyof Database },
| keyof PublicSchema["Enums"]
| { schema: keyof Database },
EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database } EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database }
? keyof Database[PublicEnumNameOrOptions["schema"]]["Enums"] ? keyof Database[PublicEnumNameOrOptions["schema"]]["Enums"]
: never = never, : never = never
> = PublicEnumNameOrOptions extends { schema: keyof Database } > = PublicEnumNameOrOptions extends { schema: keyof Database }
? Database[PublicEnumNameOrOptions["schema"]]["Enums"][EnumName] ? Database[PublicEnumNameOrOptions["schema"]]["Enums"][EnumName]
: PublicEnumNameOrOptions extends keyof PublicSchema["Enums"] : PublicEnumNameOrOptions extends keyof PublicSchema["Enums"]
@ -317,7 +303,7 @@ export type CompositeTypes<
schema: keyof Database schema: keyof Database
} }
? keyof Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"] ? keyof Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
: never = never, : never = never
> = PublicCompositeTypeNameOrOptions extends { schema: keyof Database } > = PublicCompositeTypeNameOrOptions extends { schema: keyof Database }
? Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName] ? Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
: PublicCompositeTypeNameOrOptions extends keyof PublicSchema["CompositeTypes"] : PublicCompositeTypeNameOrOptions extends keyof PublicSchema["CompositeTypes"]

View File

@ -1,4 +1,3 @@
## Permission Table ## Permission Table
<table> <table>
@ -7,7 +6,6 @@
<th>Description</th> <th>Description</th>
</tr> </tr>
<tr> <tr>
<td> <td>

View File

@ -286,7 +286,7 @@
<Separator class="my-3" /> <Separator class="my-3" />
<h2 class="text-lg font-bold">README</h2> <h2 class="text-lg font-bold">README</h2>
{#if extPublish?.readme} {#if extPublish?.readme}
<Markdown markdown={extPublish.readme} class="bg-secondary p-4 max-w-full rounded-md" /> <Markdown markdown={extPublish.readme} class="bg-secondary max-w-full rounded-md p-4" />
{/if} {/if}
</ScrollArea> </ScrollArea>

View File

@ -90,6 +90,7 @@
</script> </script>
<Command.Root <Command.Root
vimBindings={false}
class="h-screen w-full rounded-lg border shadow-md" class="h-screen w-full rounded-lg border shadow-md"
shouldFilter={listViewContent.filter !== "none"} shouldFilter={listViewContent.filter !== "none"}
bind:value={highlightedValue} bind:value={highlightedValue}

View File

@ -7,6 +7,8 @@
import { tick } from "svelte" import { tick } from "svelte"
import Kbd from "../common/Kbd.svelte" import Kbd from "../common/Kbd.svelte"
const isMac = navigator.platform.toLowerCase().includes("mac")
let { let {
actionPanel, actionPanel,
open = $bindable(false), open = $bindable(false),
@ -42,15 +44,22 @@
<Button variant="ghost" class="" {...props} role="combobox" aria-expanded={open}> <Button variant="ghost" class="" {...props} role="combobox" aria-expanded={open}>
Actions Actions
<span class="flex items-center gap-0.5" data-tauri-drag-region> <span class="flex items-center gap-0.5" data-tauri-drag-region>
<Kbd><Icon icon="ph-command" class="h-4 w-4 shrink-0" /></Kbd> <Kbd class="w-fit">
<Kbd>K</Kbd> {#if isMac}
<Icon icon="ph-command" class="h-4 w-4 shrink-0" />
{:else}
Ctl
{/if}
</Kbd>
+
<Kbd><Icon icon="mynaui:letter-k-solid" class="h-4 w-4 shrink-0" /></Kbd>
</span> </span>
<ChevronsUpDown class="ml-2 size-4 shrink-0 opacity-50" /> <ChevronsUpDown class="ml-2 size-4 shrink-0 opacity-50" />
</Button> </Button>
{/snippet} {/snippet}
</Popover.Trigger> </Popover.Trigger>
<Popover.Content class="w-64 p-0"> <Popover.Content class="w-64 p-0">
<Command.Root> <Command.Root vimBindings={false}>
<Command.Input <Command.Input
placeholder="Select an Action" placeholder="Select an Action"
onkeydown={(e) => { onkeydown={(e) => {

View File

@ -40,7 +40,7 @@
{#if defaultAction} {#if defaultAction}
<Button size="default" class="h-full" variant="ghost" onclick={onDefaultActionSelected}> <Button size="default" class="h-full" variant="ghost" onclick={onDefaultActionSelected}>
{defaultAction} {defaultAction}
<Kbd><Icon icon="tdesign:enter" /></Kbd> <Kbd><Icon icon="uil:enter" /></Kbd>
</Button> </Button>
{/if} {/if}
{#if actionPanel} {#if actionPanel}