kopia lustrzana https://github.com/elk-zone/elk
				
				
				
			refactor: flatten composables and enable auto-imports on dirs (#608)
							rodzic
							
								
									d569754b09
								
							
						
					
					
						commit
						aeb5a40948
					
				| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
<script setup lang="ts">
 | 
			
		||||
import type { AriaAnnounceType, AriaLive } from '~/composables/aria/types'
 | 
			
		||||
import { useAriaAnnouncer } from '~/composables/aria'
 | 
			
		||||
import type { AriaAnnounceType, AriaLive } from '~/composables/aria'
 | 
			
		||||
import type { LocaleObject } from '#i18n'
 | 
			
		||||
 | 
			
		||||
const router = useRouter()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
<script setup lang="ts">
 | 
			
		||||
import type { AriaLive } from '~/composables/aria/types'
 | 
			
		||||
import { useAriaLog } from '~/composables/aria'
 | 
			
		||||
import type { AriaLive } from '~/composables/aria'
 | 
			
		||||
 | 
			
		||||
// tsc complaining when using $defineProps
 | 
			
		||||
withDefaults(defineProps<{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
<script setup lang="ts">
 | 
			
		||||
import type { AriaLive } from '~/composables/aria/types'
 | 
			
		||||
import { useAriaStatus } from '~/composables/aria'
 | 
			
		||||
import type { AriaLive } from '~/composables/aria'
 | 
			
		||||
 | 
			
		||||
// tsc complaining when using $defineProps
 | 
			
		||||
withDefaults(defineProps<{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,4 @@
 | 
			
		|||
import { decode } from 'blurhash'
 | 
			
		||||
import { getDataUrlFromArr } from '~/composables/utils'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  inheritAttrs: false,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,4 @@
 | 
			
		|||
import type { Emoji } from 'masto'
 | 
			
		||||
import { emojisArrayToObject } from '~/composables/utils'
 | 
			
		||||
import { currentCustomEmojis } from '~/composables/emojis'
 | 
			
		||||
 | 
			
		||||
defineOptions({
 | 
			
		||||
  name: 'ContentRich',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
<script lang="ts" setup>
 | 
			
		||||
import { useFocusTrap } from '@vueuse/integrations/useFocusTrap'
 | 
			
		||||
import { useDeactivated } from '~/composables/lifecycle'
 | 
			
		||||
 | 
			
		||||
export interface Props {
 | 
			
		||||
  /** v-model dislog visibility */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,4 @@
 | 
			
		|||
<script setup lang="ts">
 | 
			
		||||
import { usePushManager } from '~/composables/push-notifications/usePushManager'
 | 
			
		||||
 | 
			
		||||
defineProps<{ show: boolean }>()
 | 
			
		||||
 | 
			
		||||
let busy = $ref<boolean>(false)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
<script setup lang="ts">
 | 
			
		||||
import type { Picker } from 'emoji-mart'
 | 
			
		||||
import { updateCustomEmojis } from '~/composables/emojis'
 | 
			
		||||
 | 
			
		||||
const emit = defineEmits<{
 | 
			
		||||
  (e: 'select', code: string): void
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
import type { AriaAnnounceType } from '~/composables/aria/types'
 | 
			
		||||
export type AriaLive = 'off' | 'polite' | 'assertive'
 | 
			
		||||
export type AriaAnnounceType = 'announce' | 'mute' | 'unmute'
 | 
			
		||||
 | 
			
		||||
const ariaAnnouncer = useEventBus<AriaAnnounceType, string | undefined>(Symbol('aria-announcer'))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,2 +0,0 @@
 | 
			
		|||
export type AriaLive = 'off' | 'polite' | 'assertive'
 | 
			
		||||
export type AriaAnnounceType = 'announce' | 'mute' | 'unmute'
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +1,6 @@
 | 
			
		|||
import type { Emoji } from 'masto'
 | 
			
		||||
import type { CustomEmojisInfo } from './push-notifications/types'
 | 
			
		||||
import { STORAGE_KEY_CUSTOM_EMOJIS } from '~/constants'
 | 
			
		||||
import { useUserLocalStorage } from '~/composables/users'
 | 
			
		||||
 | 
			
		||||
const TTL = 1000 * 60 * 60 * 24 // 1 day
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,8 +8,6 @@ import type {
 | 
			
		|||
  PushManagerSubscriptionInfo,
 | 
			
		||||
  RequiredUserLogin,
 | 
			
		||||
} from '~/composables/push-notifications/types'
 | 
			
		||||
import { useMasto } from '~/composables/masto'
 | 
			
		||||
import { currentUser, removePushNotificationData, removePushNotifications } from '~/composables/users'
 | 
			
		||||
 | 
			
		||||
export const createPushSubscription = async (
 | 
			
		||||
  user: RequiredUserLogin,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,14 +5,12 @@ import type {
 | 
			
		|||
  PushNotificationRequest,
 | 
			
		||||
  SubscriptionResult,
 | 
			
		||||
} from '~/composables/push-notifications/types'
 | 
			
		||||
import { createPushSubscription } from '~/composables/push-notifications/createPushSubscription'
 | 
			
		||||
import { STORAGE_KEY_NOTIFICATION, STORAGE_KEY_NOTIFICATION_POLICY } from '~/constants'
 | 
			
		||||
import { currentUser, removePushNotifications } from '~/composables/users'
 | 
			
		||||
 | 
			
		||||
const supportsPushNotifications = typeof window !== 'undefined'
 | 
			
		||||
    && 'serviceWorker' in navigator
 | 
			
		||||
    && 'PushManager' in window
 | 
			
		||||
    && 'getKey' in PushSubscription.prototype
 | 
			
		||||
  && 'serviceWorker' in navigator
 | 
			
		||||
  && 'PushManager' in window
 | 
			
		||||
  && 'getKey' in PushSubscription.prototype
 | 
			
		||||
 | 
			
		||||
export const usePushManager = () => {
 | 
			
		||||
  const masto = useMasto()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,9 +1,10 @@
 | 
			
		|||
import { fileURLToPath } from 'node:url'
 | 
			
		||||
import { createResolver } from '@nuxt/kit'
 | 
			
		||||
import Inspect from 'vite-plugin-inspect'
 | 
			
		||||
import { isCI, isDevelopment } from 'std-env'
 | 
			
		||||
import { i18n } from './config/i18n'
 | 
			
		||||
import { pwa } from './config/pwa'
 | 
			
		||||
 | 
			
		||||
const { resolve } = createResolver(import.meta.url)
 | 
			
		||||
const isPreview = process.env.PULL_REQUEST === 'true' || process.env.CONTEXT === 'deploy-preview' || process.env.CONTEXT === 'dev'
 | 
			
		||||
 | 
			
		||||
export default defineNuxtConfig({
 | 
			
		||||
| 
						 | 
				
			
			@ -44,6 +45,12 @@ export default defineNuxtConfig({
 | 
			
		|||
    'change-case': 'scule',
 | 
			
		||||
    'semver': 'unenv/runtime/mock/empty',
 | 
			
		||||
  },
 | 
			
		||||
  imports: {
 | 
			
		||||
    dirs: [
 | 
			
		||||
      './composables/push-notifications',
 | 
			
		||||
      './composables/tiptap',
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
  vite: {
 | 
			
		||||
    define: {
 | 
			
		||||
      'process.env.VSCODE_TEXTMATE_DEBUG': 'false',
 | 
			
		||||
| 
						 | 
				
			
			@ -100,7 +107,7 @@ export default defineNuxtConfig({
 | 
			
		|||
  },
 | 
			
		||||
  nitro: {
 | 
			
		||||
    publicAssets: [
 | 
			
		||||
      ...(!isCI || isPreview ? [{ dir: fileURLToPath(new URL('./public-dev', import.meta.url)) }] : []),
 | 
			
		||||
      ...(!isCI || isPreview ? [{ dir: resolve('./public-dev') }] : []),
 | 
			
		||||
    ],
 | 
			
		||||
    prerender: {
 | 
			
		||||
      crawlLinks: false,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue