snapshot of https://github.com/tauri-apps/tauri.git (dev, 2026-09-23; blobs > 131072B omitted)
Some checks failed
Audit / audit-js (push) Failing after 0s
bench / bench (map[os:ubuntu-latest runner:xvfb-run --auto-servernum target:x86_64-unknown-linux-gnu], nightly) (push) Failing after 0s
covector version or publish / run-integration-tests (ubuntu-latest) (push) Failing after 0s
Audit / audit-rust (push) Failing after 0s
test `@tauri-apps/cli` / test (ubuntu-latest) (push) Failing after 0s
test `tauri-cli` / test (map[os:ubuntu-latest target:x86_64-unknown-linux-gnu]) (push) Failing after 0s
test core / test (map[args:--all-features key:all], map[cargo:cargo command:test os:ubuntu-latest target:x86_64-unknown-linux-gnu toolchain:1.90]) (push) Failing after 0s
test core / test (map[args:--no-default-features key:no-default], map[cargo:cargo command:test os:ubuntu-latest target:x86_64-unknown-linux-gnu toolchain:1.90]) (push) Failing after 0s
test core / test (map[args:--no-default-features key:no-default], map[cargo:cross command:build os:ubuntu-latest target:aarch64-linux-android toolchain:1.90]) (push) Failing after 0s
deploy schema worker / deploy (push) Failing after 0s
lint rust / clippy (map[cargo:cargo include: os:ubuntu-latest target:x86_64-unknown-linux-gnu]) (push) Failing after 0s
lint rust / clippy (map[cargo:cross include:--package api os:ubuntu-latest target:aarch64-linux-android]) (push) Failing after 0s
supply chain health status / check rust dependencies with cargo vet (push) Failing after 0s
test `@tauri-apps/api` e2e (mobile) / android (push) Failing after 0s
test `@tauri-apps/api` e2e / test (map[name:Linux os:ubuntu-latest]) (push) Failing after 0s
test core / test (map[args:--all-features key:all], map[cargo:cross command:build os:ubuntu-latest target:aarch64-linux-android toolchain:1.90]) (push) Failing after 0s
Udeps / changes (push) Failing after 0s
Udeps / setup (push) Has been skipped
Udeps / udeps (push) Has been skipped
bench / bench (map[os:macos-latest runner: target:aarch64-apple-darwin], nightly) (push) Has been cancelled
bench / bench (map[os:windows-latest runner: target:x86_64-pc-windows-msvc], nightly) (push) Has been cancelled
covector version or publish / run-integration-tests (macos-latest) (push) Has been cancelled
covector version or publish / run-integration-tests (windows-latest) (push) Has been cancelled
covector version or publish / version-or-publish (push) Has been cancelled
test `@tauri-apps/cli` / test (macos-latest) (push) Has been cancelled
test `tauri-cli` / test (map[args:--no-default-features --features native-tls-vendored os:windows-latest restore-only:true target:aarch64-pc-windows-msvc]) (push) Has been cancelled
test `tauri-cli` / test (map[os:macos-latest target:x86_64-apple-darwin]) (push) Has been cancelled
test `tauri-cli` / test (map[os:windows-latest target:x86_64-pc-windows-msvc]) (push) Has been cancelled
test core / test (map[args:--all-features key:all], map[cargo:cargo command:build os:macos-latest target:aarch64-apple-ios toolchain:1.90]) (push) Has been cancelled
test core / test (map[args:--all-features key:all], map[cargo:cargo command:test os:macos-14 target:aarch64-apple-darwin toolchain:1.90]) (push) Has been cancelled
lint rust / clippy (map[cargo:cargo include: os:macos-latest target:aarch64-apple-darwin]) (push) Has been cancelled
lint rust / clippy (map[cargo:cargo include: os:windows-latest target:x86_64-pc-windows-msvc]) (push) Has been cancelled
lint rust / clippy (map[cargo:cargo include:--package api os:macos-latest target:aarch64-apple-ios]) (push) Has been cancelled
test `@tauri-apps/api` e2e (mobile) / ios (push) Has been cancelled
test `@tauri-apps/api` e2e / test (map[name:Windows os:windows-latest]) (push) Has been cancelled
test `@tauri-apps/api` e2e / test (map[name:macOS os:macos-latest]) (push) Has been cancelled
test `@tauri-apps/cli` / test (windows-latest) (push) Has been cancelled
test core / test (map[args:--all-features key:all], map[cargo:cargo command:test os:windows-latest target:x86_64-pc-windows-msvc toolchain:1.90]) (push) Has been cancelled
test core / test (map[args:--no-default-features key:no-default], map[cargo:cargo command:build os:macos-latest target:aarch64-apple-ios toolchain:1.90]) (push) Has been cancelled
test core / test (map[args:--no-default-features key:no-default], map[cargo:cargo command:test os:macos-14 target:aarch64-apple-darwin toolchain:1.90]) (push) Has been cancelled
test core / test (map[args:--no-default-features key:no-default], map[cargo:cargo command:test os:windows-latest target:x86_64-pc-windows-msvc toolchain:1.90]) (push) Has been cancelled

This commit is contained in:
upstream-mirror
2026-09-23 17:00:42 +05:00
commit feda81bf2f
1178 changed files with 156404 additions and 0 deletions

View File

@@ -0,0 +1,126 @@
<script lang="ts">
import { Menu, Submenu, NativeIcon } from '@tauri-apps/api/menu'
import MenuBuilder, {
reorderMenuItems,
type Item,
type MenuItemClickDetail,
type MenuItems
} from '../components/MenuBuilder.svelte'
import { defaultWindowIcon } from '@tauri-apps/api/app'
import type { ViewProps } from '../App.svelte'
import { onDestroy } from 'svelte'
import type { Image } from '@tauri-apps/api/image'
let { onMessage }: ViewProps = $props()
let items = $state<Item[]>([])
let menu: Menu | undefined
let popupMenu: Menu | undefined
let submenu: Submenu | undefined
const macOS = navigator.userAgent.includes('Macintosh')
async function createSubmenu(): Promise<Submenu> {
return await Submenu.new({
text: 'app',
items: items.map((i) => i.menu).filter(Boolean) as MenuItems[]
})
}
async function createSubmenuWithNativeIcon(): Promise<Submenu> {
return await Submenu.new({
text: 'Submenu with NativeIcon',
icon: NativeIcon.Folder,
items: items.map((i) => i.menu).filter(Boolean) as MenuItems[]
})
}
async function createSubmenuWithImageIcon(): Promise<Submenu> {
let icon: Image | undefined
try {
icon = (await defaultWindowIcon())!
return await Submenu.new({
text: 'Submenu with Image',
icon,
items: items.map((i) => i.menu).filter(Boolean) as MenuItems[]
})
} finally {
icon?.close()
}
}
async function setMenu(newSubmenu: Submenu) {
menu?.close()
menu = undefined
submenu?.close()
submenu = newSubmenu
menu = await Menu.new({
items: [submenu]
})
await (macOS ? menu.setAsAppMenu() : menu.setAsWindowMenu())
}
async function create() {
await setMenu(await createSubmenu())
}
async function createWithNativeIcon() {
await setMenu(await createSubmenuWithNativeIcon())
}
async function createWithImageIcon() {
await setMenu(await createSubmenuWithImageIcon())
}
async function popup() {
popupMenu?.close()
popupMenu = undefined
popupMenu = await Menu.new({
items: items.map((i) => i.menu).filter(Boolean) as MenuItems[]
})
await popupMenu.popup()
}
function onItemClick(detail: MenuItemClickDetail) {
onMessage(`Item ${detail.text} clicked`)
}
onDestroy(() => {
menu?.close()
submenu?.close()
popupMenu?.close()
})
</script>
<div class="grid gap-8 mb-4">
<MenuBuilder
bind:items
itemClick={onItemClick}
onItemAdded={async (item) => {
if (item.menu) {
await submenu?.append(item.menu)
}
}}
onItemRemoved={async (item) => {
if (item.menu) {
await submenu?.remove(item.menu)
}
}}
onItemMoved={(item, toIndex) => {
if (submenu) {
reorderMenuItems(submenu, item, toIndex)
}
}}
/>
<div class="flex gap-2">
<button class="btn" onclick={create}>Create menu</button>
<button class="btn" onclick={createWithNativeIcon}
>Create menu with NativeIcon</button
>
<button class="btn" onclick={createWithImageIcon}
>Create menu with Image icon</button
>
<button class="btn" onclick={popup}>Popup</button>
</div>
</div>