Skip to content

Commit f186837

Browse files
committed
chore(refactor): extract useEditorFlags into its own file
Signed-off-by: Max <max@nextcloud.com>
1 parent d5cb959 commit f186837

File tree

11 files changed

+87
-43
lines changed

11 files changed

+87
-43
lines changed

src/components/Assistant.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,8 @@ import NcActionButton from '@nextcloud/vue/components/NcActionButton'
162162
import NcActionSeparator from '@nextcloud/vue/components/NcActionSeparator'
163163
import NcListItem from '@nextcloud/vue/components/NcListItem'
164164
import NcModal from '@nextcloud/vue/components/NcModal'
165-
import { useEditorFlags, useFileMixin } from './Editor.provider.ts'
165+
import { useFileMixin } from './Editor.provider.ts'
166+
import { useEditorFlags } from '../composables/useEditorFlags.ts'
166167
import { useEditor } from '../composables/useEditor.ts'
167168
import { FloatingMenu } from '@tiptap/vue-2'
168169
import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'

src/components/CollisionResolveDialog.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
</template>
3030

3131
<script>
32-
import { useEditorFlags, useSyncServiceMixin } from './Editor.provider.ts'
32+
import { useSyncServiceMixin } from './Editor.provider.ts'
33+
import { useEditorFlags } from '../composables/useEditorFlags.ts'
3334
import { useEditor } from '../composables/useEditor.ts'
3435
import NcButton from '@nextcloud/vue/components/NcButton'
3536
import { useEditorMethods } from '../composables/useEditorMethods.ts'

src/components/Editor.provider.ts

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,6 @@
44
*/
55

66
import { logger } from '../helpers/logger.js'
7-
import { provide, inject, ref, computed } from 'vue'
8-
import type { InjectionKey, Ref, ShallowReactive } from 'vue'
9-
import { isPublicShare } from '@nextcloud/sharing/public'
10-
import { loadState } from '@nextcloud/initial-state'
11-
12-
export interface EditorFlags {
13-
isPublic: Ref<boolean>
14-
isRichEditor: Ref<boolean>
15-
isRichWorkspace: Ref<boolean>
16-
}
17-
interface Props {
18-
isDirectEditing: boolean
19-
richWorkspace: boolean
20-
mime: string
21-
}
22-
export const editorFlagsKey = Symbol('editor:flags') as InjectionKey<EditorFlags>
23-
export const provideEditorFlags = (props: ShallowReactive<Props>) => {
24-
const isPublic = computed(() => props.isDirectEditing || isPublicShare())
25-
const isRichWorkspace = computed(() => props.richWorkspace)
26-
const isRichEditor = computed(
27-
() =>
28-
loadState('text', 'rich_editing_enabled', true)
29-
&& props.mime === 'text/markdown',
30-
)
31-
provide(editorFlagsKey, { isPublic, isRichEditor, isRichWorkspace })
32-
return { isPublic, isRichEditor, isRichWorkspace }
33-
}
34-
export const useEditorFlags = () => {
35-
const { isPublic, isRichEditor, isRichWorkspace } = inject(editorFlagsKey, {
36-
isPublic: ref(false),
37-
isRichEditor: ref(false),
38-
isRichWorkspace: ref(false),
39-
})
40-
return { isPublic, isRichEditor, isRichWorkspace }
41-
}
427

438
export const FILE = Symbol('editor:file')
449
export const ATTACHMENT_RESOLVER = Symbol('attachment:resolver')

src/components/Editor.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ import {
9696
ATTACHMENT_RESOLVER,
9797
IS_MOBILE,
9898
SYNC_SERVICE,
99-
provideEditorFlags,
10099
} from './Editor.provider.ts'
100+
import { provideEditorFlags } from '../composables/useEditorFlags.ts'
101101
import { provideEditor } from '../composables/useEditor.ts'
102102
import ReadonlyBar from './Menu/ReadonlyBar.vue'
103103

src/components/Editor/MarkdownContentEditor.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ import { Editor } from '@tiptap/core'
2727
/* eslint-disable import/no-named-as-default */
2828
import History from '@tiptap/extension-history'
2929
import { getCurrentUser } from '@nextcloud/auth'
30-
import { ATTACHMENT_RESOLVER, editorFlagsKey } from '../Editor.provider.ts'
30+
import { ATTACHMENT_RESOLVER } from '../Editor.provider.ts'
31+
import { editorFlagsKey } from '../../composables/useEditorFlags.ts'
3132
import { provideEditor } from '../../composables/useEditor.ts'
3233
import { createMarkdownSerializer } from '../../extensions/Markdown.js'
3334
import AttachmentResolver from '../../services/AttachmentResolver.js'

src/components/Editor/Status.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ import moment from '@nextcloud/moment'
3232
import NcButton from '@nextcloud/vue/components/NcButton'
3333
import NcSavingIndicatorIcon from '@nextcloud/vue/components/NcSavingIndicatorIcon'
3434
import {
35-
useEditorFlags,
3635
useIsMobileMixin,
3736
useSyncServiceMixin,
3837
} from '../Editor.provider.ts'
38+
import { useEditorFlags } from '../../composables/useEditor.ts'
3939
import refreshMoment from '../../mixins/refreshMoment.js'
4040
4141
export default {

src/components/Editor/Wrapper.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
<script>
1818
import { subscribe, unsubscribe } from '@nextcloud/event-bus'
19-
import { useEditorFlags } from '../Editor.provider.ts'
19+
import { useEditorFlags } from '../../composables/useEditor.ts'
2020
import { OUTLINE_STATE, OUTLINE_ACTIONS, READ_ONLY_ACTIONS } from './Wrapper.provider.js'
2121
2222
export default {

src/components/Menu/ActionAttachmentUpload.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ import { Loading, Folder, Upload, Plus } from '../icons.js'
6363
import {
6464
useEditorUpload,
6565
useSyncServiceMixin,
66-
useEditorFlags,
6766
} from '../Editor.provider.ts'
67+
import { useEditorFlags } from '../../composables/useEditorFlags.ts'
6868
import { BaseActionEntry } from './BaseActionEntry.js'
6969
import { useMenuIDMixin } from './MenuBar.provider.js'
7070
import {

src/components/Menu/MenuBar.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ import { ReadOnlyDoneEntries, MenuEntries } from './entries.js'
7777
import { MENU_ID } from './MenuBar.provider.js'
7878
import { DotsHorizontal, TranslateVariant } from '../icons.js'
7979
import {
80-
useEditorFlags,
8180
useIsMobileMixin,
8281
} from '../Editor.provider.ts'
82+
import { useEditorFlags } from '../../composables/useEditorFlags.ts'
8383
import { useEditor } from '../../composables/useEditor.ts'
8484
8585
export default {

src/composables/useEditorFlags.ts

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import { loadState } from '@nextcloud/initial-state'
2+
import { isPublicShare } from '@nextcloud/sharing/public'
3+
import {
4+
type Ref,
5+
type InjectionKey,
6+
type ShallowReactive,
7+
computed,
8+
provide,
9+
inject,
10+
ref,
11+
} from 'vue'
12+
13+
export interface EditorFlags {
14+
isPublic: Ref<boolean>
15+
isRichEditor: Ref<boolean>
16+
isRichWorkspace: Ref<boolean>
17+
}
18+
interface Props {
19+
isDirectEditing: boolean
20+
richWorkspace: boolean
21+
mime: string
22+
}
23+
export const editorFlagsKey = Symbol('editor:flags') as InjectionKey<EditorFlags>
24+
export const provideEditorFlags = (props: ShallowReactive<Props>) => {
25+
const isPublic = computed(() => props.isDirectEditing || isPublicShare())
26+
const isRichWorkspace = computed(() => props.richWorkspace ?? false)
27+
const isRichEditor = computed(
28+
() =>
29+
loadState('text', 'rich_editing_enabled', true)
30+
&& props.mime === 'text/markdown',
31+
)
32+
provide(editorFlagsKey, { isPublic, isRichEditor, isRichWorkspace })
33+
return { isPublic, isRichEditor, isRichWorkspace }
34+
}
35+
export const useEditorFlags = () => {
36+
const { isPublic, isRichEditor, isRichWorkspace } = inject(editorFlagsKey, {
37+
isPublic: ref(false),
38+
isRichEditor: ref(false),
39+
isRichWorkspace: ref(false),
40+
})
41+
return { isPublic, isRichEditor, isRichWorkspace }
42+
}

0 commit comments

Comments
 (0)