Adds dynamic quick actions via modules
Introduces a dynamic quick action system, allowing modules to register actions that appear in a floating action button menu. This provides a flexible way for modules to extend the application's functionality with common tasks like composing notes or initiating payments.
This commit is contained in:
parent
b286a0315d
commit
678ccff694
4 changed files with 219 additions and 83 deletions
|
|
@ -1,7 +1,10 @@
|
|||
import type { App } from 'vue'
|
||||
import { markRaw } from 'vue'
|
||||
import type { ModulePlugin } from '@/core/types'
|
||||
import { container, SERVICE_TOKENS } from '@/core/di-container'
|
||||
import NostrFeed from './components/NostrFeed.vue'
|
||||
import NoteComposer from './components/NoteComposer.vue'
|
||||
import RideshareComposer from './components/RideshareComposer.vue'
|
||||
import { useFeed } from './composables/useFeed'
|
||||
import { FeedService } from './services/FeedService'
|
||||
import { ProfileService } from './services/ProfileService'
|
||||
|
|
@ -17,6 +20,28 @@ export const nostrFeedModule: ModulePlugin = {
|
|||
version: '1.0.0',
|
||||
dependencies: ['base'],
|
||||
|
||||
// Register quick actions for the FAB menu
|
||||
quickActions: [
|
||||
{
|
||||
id: 'note',
|
||||
label: 'Note',
|
||||
icon: 'MessageSquare',
|
||||
component: markRaw(NoteComposer),
|
||||
category: 'compose',
|
||||
order: 1,
|
||||
requiresAuth: true
|
||||
},
|
||||
{
|
||||
id: 'rideshare',
|
||||
label: 'Rideshare',
|
||||
icon: 'Car',
|
||||
component: markRaw(RideshareComposer),
|
||||
category: 'compose',
|
||||
order: 2,
|
||||
requiresAuth: true
|
||||
}
|
||||
],
|
||||
|
||||
async install(app: App) {
|
||||
console.log('nostr-feed module: Starting installation...')
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue