Skip to content

Commit 5abb53f

Browse files
committed
chore: update applet playground
1 parent c784732 commit 5abb53f

File tree

7 files changed

+102
-3
lines changed

7 files changed

+102
-3
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
"prepare": "simple-git-hooks",
5757
"test": "vitest --environment jsdom",
5858
"play": "turbo dev --filter=./packages/playground/basic",
59+
"play:applet": "turbo dev --filter=./packages/playground/applet",
5960
"play:ui": "turbo dev --filter=./packages/playground/ui",
6061
"play:multi-app": "turbo dev --filter=./packages/playground/multi-app",
6162
"play:webpack": "turbo dev --filter=./packages/playground/webpack",

packages/playground/applet/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"dev": "vite"
77
},
88
"dependencies": {
9+
"@iconify/json": "^2.2.191",
910
"@vueuse/core": "^10.7.2",
1011
"pinia": "^2.1.7",
1112
"unplugin-auto-import": "^0.17.5",
@@ -15,6 +16,7 @@
1516
"devDependencies": {
1617
"@vitejs/plugin-vue": "^5.0.3",
1718
"@vue/devtools-applet": "workspace:*",
19+
"@vue/devtools-core": "workspace:*",
1820
"@vue/devtools-kit": "workspace:*",
1921
"sass": "^1.70.0",
2022
"serve": "^14.2.1",
Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,67 @@
11
<script setup lang="ts">
2-
import { useColorMode } from '@vueuse/core'
2+
import { useColorMode, useDark } from '@vueuse/core'
33
import { Pinia } from '@vue/devtools-applet'
4+
import '@vue/devtools-applet/style.css'
5+
import { HandShakeServer, getDevToolsState, initDevToolsSeparateWindow, initDevToolsSeparateWindowBridge, onDevToolsStateUpdated, setupDevToolsBridge } from '@vue/devtools-core'
6+
import { useCounterStore } from './stores'
7+
8+
const isDark = useDark()
9+
// user app
10+
const counterStore = useCounterStore()
11+
12+
// devtools
13+
const appConnected = ref(false)
14+
const clientConnected = ref(false)
15+
const connected = computed(() => appConnected.value && clientConnected.value)
16+
17+
initDevToolsSeparateWindow({
18+
onConnected(channel) {
19+
const bridge = initDevToolsSeparateWindowBridge(channel)
20+
setupDevToolsBridge(bridge)
21+
new HandShakeServer(bridge).onnConnect().then(() => {
22+
bridge.emit('devtools:client-ready')
23+
initVueDevToolsState()
24+
})
25+
bridge.on('disconnect', () => {
26+
channel.close()
27+
initDevToolsSeparateWindow()
28+
})
29+
},
30+
})
31+
32+
function initVueDevToolsState() {
33+
getDevToolsState().then((data) => {
34+
if (data)
35+
return
36+
appConnected.value = data!.connected
37+
clientConnected.value = data!.clientConnected
38+
})
39+
40+
onDevToolsStateUpdated((data) => {
41+
if (!data)
42+
return
43+
appConnected.value = data!.connected
44+
clientConnected.value = data!.clientConnected
45+
})
46+
}
447
548
useColorMode()
649
</script>
750

851
<template>
952
<div class="h-screen w-screen flex flex-col items-center justify-center">
53+
<div i-carbon-sun dark:i-carbon-moon translate-y--1px @click="isDark = !isDark" />
54+
55+
<div select-none>
56+
Count:{{ counterStore.count }}
57+
<span @click="counterStore.increment">➕</span>
58+
<span @click="counterStore.decrement">➖</span>
59+
</div>
1060
<div h-150 w-200 border="1 green solid">
11-
<Pinia />
61+
<Pinia v-if="connected" />
62+
<div v-else class="h-full flex items-center justify-center">
63+
Connecting...
64+
</div>
1265
</div>
1366
</div>
1467
</template>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
import { createPinia } from 'pinia'
12
import App from './App.vue'
23

34
import './style.css'
45
import 'uno.css'
56
import '@vue/devtools-applet/style.css'
67

8+
const pinia = createPinia()
79
const app = createApp(App)
10+
app.use(pinia)
11+
812
app.mount('#app')
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { defineStore } from 'pinia'
2+
import { computed, ref } from 'vue'
3+
4+
export const useAppStore = defineStore('app', () => {
5+
const count = ref(120)
6+
const map = ref(new Map([['a', 1], ['b', 2]]))
7+
const set = ref(new Set([1, 2, 3]))
8+
function increment() {
9+
count.value++
10+
}
11+
const doubledCount = computed(() => count.value * 2)
12+
13+
return { count, doubledCount, increment, map, set }
14+
})
15+
16+
export const useCounterStore = defineStore('counter', () => {
17+
const count = ref(10)
18+
const name = ref('webfansplz!!!')
19+
function increment() {
20+
count.value++
21+
}
22+
function decrement() {
23+
count.value--
24+
}
25+
26+
return { count, name, increment, decrement }
27+
})

packages/playground/applet/uno.config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {
22
defineConfig,
33
presetAttributify,
4+
presetIcons,
45
presetTypography,
56
presetUno,
67
transformerDirectives,
@@ -12,6 +13,12 @@ export default defineConfig({
1213
presetUno(),
1314
presetAttributify(),
1415
presetTypography(),
16+
presetIcons({
17+
prefix: ['i-', ''],
18+
collections: {},
19+
cdn: 'https://esm.sh/',
20+
scale: 1.2,
21+
}),
1522
],
1623
transformers: [
1724
transformerDirectives(),

pnpm-lock.yaml

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)