Skip to content

Commit 7dd54f1

Browse files
committed
chore: restructure integrations apps and entry points
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
1 parent 68c5388 commit 7dd54f1

29 files changed

Lines changed: 182 additions & 179 deletions

rspack.config.js

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,23 @@ module.exports = defineConfig((env) => {
4040
devtool: isDev ? 'cheap-source-map' : 'source-map',
4141

4242
entry: {
43+
// Main app entry points
4344
'admin-settings': path.join(__dirname, 'src', 'mainAdminSettings.js'),
44-
collections: path.join(__dirname, 'src', 'collections.js'),
4545
main: path.join(__dirname, 'src', 'main.js'),
4646
recording: path.join(__dirname, 'src', 'mainRecording.js'),
47-
'files-sidebar': path.join(__dirname, 'src', 'mainFilesSidebarLoader.js'),
48-
'public-share-auth-form': path.join(__dirname, 'src', 'publicShareAuthForm.ts'),
49-
'public-share-auth-sidebar': path.join(__dirname, 'src', 'mainPublicShareAuthSidebar.js'),
50-
'public-share-sidebar': path.join(__dirname, 'src', 'mainPublicShareSidebar.js'),
51-
'floating-call': path.join(__dirname, 'src', 'mainFloatingCallTrigger.ts'),
52-
flow: path.join(__dirname, 'src', 'flow.js'),
53-
deck: path.join(__dirname, 'src', 'deck.js'),
54-
maps: path.join(__dirname, 'src', 'maps.js'),
55-
search: path.join(__dirname, 'src', 'search.js'),
56-
icons: path.join(__dirname, 'src', 'icons.css'),
47+
// Integration apps entry points
48+
collections: path.join(__dirname, 'src', 'integrations', 'collections.js'),
49+
'files-sidebar': path.join(__dirname, 'src', 'integrations', 'mainFilesSidebarLoader.js'),
50+
'public-share-auth-form': path.join(__dirname, 'src', 'integrations', 'publicShareAuthForm.ts'),
51+
'public-share-auth-sidebar': path.join(__dirname, 'src', 'integrations', 'mainPublicShareAuthSidebar.js'),
52+
'public-share-sidebar': path.join(__dirname, 'src', 'integrations', 'mainPublicShareSidebar.js'),
53+
'floating-call': path.join(__dirname, 'src', 'integrations', 'mainFloatingCallLoader.ts'),
54+
flow: path.join(__dirname, 'src', 'integrations', 'flow.js'),
55+
deck: path.join(__dirname, 'src', 'integrations', 'deck.js'),
56+
maps: path.join(__dirname, 'src', 'integrations', 'maps.js'),
57+
search: path.join(__dirname, 'src', 'integrations', 'search.js'),
58+
// Styles entry points
59+
icons: path.join(__dirname, 'src', 'assets', 'icons.css'),
5760
},
5861

5962
output: {
Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,23 @@
44
-->
55

66
<script setup lang="ts">
7-
import type { InitialState } from '../types/index.ts'
7+
import type { InitialState } from './types'
88
99
import { loadState } from '@nextcloud/initial-state'
1010
import { computed, ref } from 'vue'
11-
import AllowedGroups from '../components/AdminSettings/AllowedGroups.vue'
12-
import BotsSettings from '../components/AdminSettings/BotsSettings.vue'
13-
import FederationSettings from '../components/AdminSettings/FederationSettings.vue'
14-
import GeneralSettings from '../components/AdminSettings/GeneralSettings.vue'
15-
import HostedSignalingServer from '../components/AdminSettings/HostedSignalingServer.vue'
16-
import MatterbridgeIntegration from '../components/AdminSettings/MatterbridgeIntegration.vue'
17-
import RecordingServers from '../components/AdminSettings/RecordingServers.vue'
18-
import SignalingServers from '../components/AdminSettings/SignalingServers.vue'
19-
import SIPBridge from '../components/AdminSettings/SIPBridge.vue'
20-
import StunServers from '../components/AdminSettings/StunServers.vue'
21-
import TurnServers from '../components/AdminSettings/TurnServers.vue'
22-
import WebServerSetupChecks from '../components/AdminSettings/WebServerSetupChecks.vue'
23-
import { hasTalkFeature } from '../services/CapabilitiesManager.ts'
11+
import AllowedGroups from './components/AdminSettings/AllowedGroups.vue'
12+
import BotsSettings from './components/AdminSettings/BotsSettings.vue'
13+
import FederationSettings from './components/AdminSettings/FederationSettings.vue'
14+
import GeneralSettings from './components/AdminSettings/GeneralSettings.vue'
15+
import HostedSignalingServer from './components/AdminSettings/HostedSignalingServer.vue'
16+
import MatterbridgeIntegration from './components/AdminSettings/MatterbridgeIntegration.vue'
17+
import RecordingServers from './components/AdminSettings/RecordingServers.vue'
18+
import SignalingServers from './components/AdminSettings/SignalingServers.vue'
19+
import SIPBridge from './components/AdminSettings/SIPBridge.vue'
20+
import StunServers from './components/AdminSettings/StunServers.vue'
21+
import TurnServers from './components/AdminSettings/TurnServers.vue'
22+
import WebServerSetupChecks from './components/AdminSettings/WebServerSetupChecks.vue'
23+
import { hasTalkFeature } from './services/CapabilitiesManager.ts'
2424
2525
const hasValidSubscription = loadState<InitialState['spreed']['has_valid_subscription']>('spreed', 'has_valid_subscription')
2626

src/icons.css renamed to src/assets/icons.css

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#talk-sidebar .icon-user,
1111
#call-container .icon-user,
1212
.talkChatTab .icon-user {
13-
background-image: url(../img/icon-user-white.svg);
13+
background-image: url(../../img/icon-user-white.svg);
1414
}
1515

1616
.app-talk .icon-public,
@@ -21,7 +21,7 @@
2121
#talk-sidebar .icon-public,
2222
#call-container .icon-public,
2323
.talkChatTab .icon-public {
24-
background-image: url(../img/icon-public-white.svg);
24+
background-image: url(../../img/icon-public-white.svg);
2525
}
2626

2727
.app-talk .icon-contacts,
@@ -32,7 +32,7 @@
3232
#talk-sidebar .icon-contacts,
3333
#call-container .icon-contacts,
3434
.talkChatTab .icon-contacts {
35-
background-image: url(../img/icon-contacts-white.svg);
35+
background-image: url(../../img/icon-contacts-white.svg);
3636
}
3737

3838
.app-talk .icon-phone,
@@ -43,7 +43,7 @@
4343
#talk-sidebar .icon-phone,
4444
#call-container .icon-phone,
4545
.talkChatTab .icon-phone {
46-
background-image: url(../img/icon-phone-white.svg);
46+
background-image: url(../../img/icon-phone-white.svg);
4747
}
4848

4949
.app-talk .icon-event,
@@ -54,7 +54,7 @@
5454
#talk-sidebar .icon-event,
5555
#call-container .icon-event,
5656
.talkChatTab .icon-event {
57-
background-image: url(../img/icon-event-white.svg);
57+
background-image: url(../../img/icon-event-white.svg);
5858
}
5959

6060

@@ -66,7 +66,7 @@
6666
#talk-sidebar .icon-password,
6767
#call-container .icon-password,
6868
.talkChatTab .icon-password {
69-
background-image: url(../img/icon-password-white.svg);
69+
background-image: url(../../img/icon-password-white.svg);
7070
}
7171

7272
.app-talk .icon-file,
@@ -77,7 +77,7 @@
7777
#talk-sidebar .icon-file,
7878
#call-container .icon-file,
7979
.talkChatTab .icon-file {
80-
background-image: url(../img/icon-text-white.svg);
80+
background-image: url(../../img/icon-text-white.svg);
8181
}
8282

8383
.app-talk .icon-mail,
@@ -88,7 +88,7 @@
8888
#talk-sidebar .icon-mail,
8989
#call-container .icon-mail,
9090
.talkChatTab .icon-mail {
91-
background-image: url(../img/icon-mail-white.svg);
91+
background-image: url(../../img/icon-mail-white.svg);
9292
}
9393

9494
.app-talk .icon-team,
@@ -99,7 +99,7 @@
9999
#talk-sidebar .icon-team,
100100
#call-container .icon-team,
101101
.talkChatTab .icon-team {
102-
background-image: url(../img/icon-team-white.svg);
102+
background-image: url(../../img/icon-team-white.svg);
103103
}
104104

105105
.app-talk .icon-changelog,
@@ -110,7 +110,7 @@
110110
#talk-sidebar .icon-changelog,
111111
#call-container .icon-changelog,
112112
.talkChatTab .icon-changelog {
113-
background-image: url(../img/changelog.svg);
113+
background-image: url(../../img/changelog.svg);
114114
}
115115

116116
.app-talk .icon-voice-room,
@@ -121,7 +121,7 @@
121121
#talk-sidebar .icon-voice-room,
122122
#call-container .icon-voice-room,
123123
.talkChatTab .icon-voice-room {
124-
background-image: url(../img/material-icons/volume-high-outline.svg);
124+
background-image: url(../../img/material-icons/volume-high-outline.svg);
125125
}
126126

127127
/* The tribute panel is a direct child of the body, so it is not affected by
@@ -204,28 +204,28 @@ body[dir="rtl"] .bidirectional-icon {
204204
.mention-chip .icon-user-forced-white,
205205
.autocomplete-result .icon-user-forced-white.autocomplete-result__icon--,
206206
.mention-bubble .icon-user-forced-white.mention-bubble__icon-- {
207-
background-image: url(../img/icon-user-white.svg);
207+
background-image: url(../../img/icon-user-white.svg);
208208
}
209209

210210
.user-bubble__avatar .icon-mail-forced-white,
211211
.mention-chip .icon-mail-forced-white,
212212
.autocomplete-result .icon-mail-forced-white.autocomplete-result__icon--,
213213
.mention-bubble .icon-mail-forced-white.mention-bubble__icon-- {
214-
background-image: url(../img/icon-mail-white.svg);
214+
background-image: url(../../img/icon-mail-white.svg);
215215
}
216216

217217
.user-bubble__avatar .icon-group-forced-white,
218218
.mention-chip .icon-group-forced-white,
219219
.autocomplete-result .icon-group-forced-white.autocomplete-result__icon--,
220220
.mention-bubble .icon-group-forced-white.mention-bubble__icon-- {
221-
background-image: url(../img/icon-contacts-white.svg);
221+
background-image: url(../../img/icon-contacts-white.svg);
222222
}
223223

224224
.user-bubble__avatar .icon-team-forced-white,
225225
.mention-chip .icon-team-forced-white,
226226
.autocomplete-result .icon-team-forced-white.autocomplete-result__icon--,
227227
.mention-bubble .icon-team-forced-white.mention-bubble__icon-- {
228-
background-image: url(../img/icon-team-white.svg);
228+
background-image: url(../../img/icon-team-white.svg);
229229
}
230230

231231
/* Needed to use white color also in dark mode. */
@@ -234,6 +234,6 @@ body[dir="rtl"] .bidirectional-icon {
234234
}
235235

236236
.dashboard-talk-icon {
237-
background-image: url(../img/app-dark.svg);
237+
background-image: url(../../img/app-dark.svg);
238238
filter: var(--background-invert-if-dark);
239239
}

src/PublicShareAuthForm.vue renamed to src/integrations/FilesPublicShare/PublicShareAuthForm.vue

File renamed without changes.

src/PublicShareAuthRequestPasswordButton.vue renamed to src/integrations/FilesPublicShare/PublicShareAuthRequestPasswordButton.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ import NcButton from '@nextcloud/vue/components/NcButton'
1111
import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'
1212
import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'
1313
import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
14-
import IconTalkApp from '../img/app.svg?raw'
15-
import { getPublicShareAuthConversationToken } from './services/filesIntegrationServices.ts'
16-
import { useTokenStore } from './stores/token.ts'
17-
import { checkBrowser } from './utils/browserCheck.ts'
14+
import IconTalkApp from '../../../img/app.svg?raw'
15+
import { getPublicShareAuthConversationToken } from '../../services/filesIntegrationServices.ts'
16+
import { useTokenStore } from '../../stores/token.ts'
17+
import { checkBrowser } from '../../utils/browserCheck.ts'
1818
1919
const tokenStore = useTokenStore()
2020

src/PublicShareAuthSidebar.vue renamed to src/integrations/FilesPublicShare/PublicShareAuthSidebar.vue

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,26 @@ import { getCurrentUser, getGuestNickname } from '@nextcloud/auth'
3030
import { emit } from '@nextcloud/event-bus'
3131
import { loadState } from '@nextcloud/initial-state'
3232
import { t } from '@nextcloud/l10n'
33-
import CallView from './components/CallView/CallView.vue'
34-
import MediaSettings from './components/MediaSettings/MediaSettings.vue'
35-
import PollManager from './components/PollViewer/PollManager.vue'
36-
import PollViewer from './components/PollViewer/PollViewer.vue'
37-
import InternalSignalingHint from './components/RightSidebar/InternalSignalingHint.vue'
38-
import TopBar from './components/TopBar/TopBar.vue'
39-
import TransitionWrapper from './components/UIShared/TransitionWrapper.vue'
40-
import { useGetMessagesProvider } from './composables/useGetMessages.ts'
41-
import { useHashCheck } from './composables/useHashCheck.js'
42-
import { useRecordingStatusSync } from './composables/useRecordingStatusSync.ts'
43-
import { useSessionIssueHandler } from './composables/useSessionIssueHandler.ts'
44-
import { EventBus } from './services/EventBus.ts'
33+
import CallView from '../../components/CallView/CallView.vue'
34+
import MediaSettings from '../../components/MediaSettings/MediaSettings.vue'
35+
import PollManager from '../../components/PollViewer/PollManager.vue'
36+
import PollViewer from '../../components/PollViewer/PollViewer.vue'
37+
import InternalSignalingHint from '../../components/RightSidebar/InternalSignalingHint.vue'
38+
import TopBar from '../../components/TopBar/TopBar.vue'
39+
import TransitionWrapper from '../../components/UIShared/TransitionWrapper.vue'
40+
import { useGetMessagesProvider } from '../../composables/useGetMessages.ts'
41+
import { useHashCheck } from '../../composables/useHashCheck.js'
42+
import { useRecordingStatusSync } from '../../composables/useRecordingStatusSync.ts'
43+
import { useSessionIssueHandler } from '../../composables/useSessionIssueHandler.ts'
44+
import { EventBus } from '../../services/EventBus.ts'
4545
import {
4646
leaveConversationSync,
4747
setGuestUserName,
48-
} from './services/participantsService.js'
49-
import SessionStorage from './services/SessionStorage.js'
50-
import { useActorStore } from './stores/actor.ts'
51-
import { useTokenStore } from './stores/token.ts'
52-
import { signalingKill } from './utils/webrtc/index.js'
48+
} from '../../services/participantsService.js'
49+
import SessionStorage from '../../services/SessionStorage.js'
50+
import { useActorStore } from '../../stores/actor.ts'
51+
import { useTokenStore } from '../../stores/token.ts'
52+
import { signalingKill } from '../../utils/webrtc'
5353
5454
export default {
5555
@@ -217,7 +217,7 @@ export default {
217217
</style>
218218

219219
<style lang="scss" scoped>
220-
@use './assets/variables.scss' as *;
220+
@use '../../assets/variables' as *;
221221
222222
/* Styles based on the NcAppSidebar */
223223
#talk-sidebar {

src/PublicShareSidebar.vue renamed to src/integrations/FilesPublicShare/PublicShareSidebar.vue

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -43,30 +43,30 @@ import { loadState } from '@nextcloud/initial-state'
4343
import { t } from '@nextcloud/l10n'
4444
import NcButton from '@nextcloud/vue/components/NcButton'
4545
import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'
46-
import CallFailedDialog from './components/CallView/CallFailedDialog.vue'
47-
import CallView from './components/CallView/CallView.vue'
48-
import MediaSettings from './components/MediaSettings/MediaSettings.vue'
49-
import PollManager from './components/PollViewer/PollManager.vue'
50-
import PollViewer from './components/PollViewer/PollViewer.vue'
51-
import InternalSignalingHint from './components/RightSidebar/InternalSignalingHint.vue'
52-
import CallButton from './components/TopBar/CallButton.vue'
53-
import TopBar from './components/TopBar/TopBar.vue'
54-
import TransitionWrapper from './components/UIShared/TransitionWrapper.vue'
55-
import { useGetMessagesProvider } from './composables/useGetMessages.ts'
56-
import { useHashCheck } from './composables/useHashCheck.js'
57-
import { useIsInCall } from './composables/useIsInCall.js'
58-
import { useRecordingStatusSync } from './composables/useRecordingStatusSync.ts'
59-
import { useSessionIssueHandler } from './composables/useSessionIssueHandler.ts'
60-
import { EventBus } from './services/EventBus.ts'
61-
import { getPublicShareConversationData } from './services/filesIntegrationServices.ts'
46+
import CallFailedDialog from '../../components/CallView/CallFailedDialog.vue'
47+
import CallView from '../../components/CallView/CallView.vue'
48+
import MediaSettings from '../../components/MediaSettings/MediaSettings.vue'
49+
import PollManager from '../../components/PollViewer/PollManager.vue'
50+
import PollViewer from '../../components/PollViewer/PollViewer.vue'
51+
import InternalSignalingHint from '../../components/RightSidebar/InternalSignalingHint.vue'
52+
import CallButton from '../../components/TopBar/CallButton.vue'
53+
import TopBar from '../../components/TopBar/TopBar.vue'
54+
import TransitionWrapper from '../../components/UIShared/TransitionWrapper.vue'
55+
import { useGetMessagesProvider } from '../../composables/useGetMessages.ts'
56+
import { useHashCheck } from '../../composables/useHashCheck.js'
57+
import { useIsInCall } from '../../composables/useIsInCall.js'
58+
import { useRecordingStatusSync } from '../../composables/useRecordingStatusSync.ts'
59+
import { useSessionIssueHandler } from '../../composables/useSessionIssueHandler.ts'
60+
import { EventBus } from '../../services/EventBus.ts'
61+
import { getPublicShareConversationData } from '../../services/filesIntegrationServices.ts'
6262
import {
6363
leaveConversationSync,
64-
} from './services/participantsService.js'
65-
import SessionStorage from './services/SessionStorage.js'
66-
import { useActorStore } from './stores/actor.ts'
67-
import { useTokenStore } from './stores/token.ts'
68-
import { checkBrowser } from './utils/browserCheck.ts'
69-
import { signalingKill } from './utils/webrtc/index.js'
64+
} from '../../services/participantsService.js'
65+
import SessionStorage from '../../services/SessionStorage.js'
66+
import { useActorStore } from '../../stores/actor.ts'
67+
import { useTokenStore } from '../../stores/token.ts'
68+
import { checkBrowser } from '../../utils/browserCheck.ts'
69+
import { signalingKill } from '../../utils/webrtc'
7070
7171
export default {
7272
name: 'PublicShareSidebar',

src/PublicShareSidebarTrigger.vue renamed to src/integrations/FilesPublicShare/PublicShareSidebarTrigger.vue

File renamed without changes.

src/views/FilesSidebarCallView.vue renamed to src/integrations/FilesSidebar/FilesSidebarCallView.vue

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
<script setup lang="ts">
77
import { onBeforeUnmount } from 'vue'
8-
import CallView from '../components/CallView/CallView.vue'
9-
import TopBar from '../components/TopBar/TopBar.vue'
10-
import { useGetToken } from '../composables/useGetToken.ts'
11-
import { useHashCheck } from '../composables/useHashCheck.js'
12-
import { useSessionIssueHandler } from '../composables/useSessionIssueHandler.ts'
8+
import CallView from '../../components/CallView/CallView.vue'
9+
import TopBar from '../../components/TopBar/TopBar.vue'
10+
import { useGetToken } from '../../composables/useGetToken.ts'
11+
import { useHashCheck } from '../../composables/useHashCheck.js'
12+
import { useSessionIssueHandler } from '../../composables/useSessionIssueHandler.ts'
1313
1414
useHashCheck()
1515
@@ -84,7 +84,7 @@ header.app-sidebar-header.hidden-by-call > div:not(.talk-sidebar-callview), {
8484
</style>
8585

8686
<style lang="scss" scoped>
87-
@use '../assets/variables.scss' as *;
87+
@use '../../assets/variables' as *;
8888
8989
#call-container {
9090
position: relative;

src/views/FilesSidebarChatView.vue renamed to src/integrations/FilesSidebar/FilesSidebarChatView.vue

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@
1717

1818
<script>
1919
20-
import CallFailedDialog from '../components/CallView/CallFailedDialog.vue'
21-
import MediaSettings from '../components/MediaSettings/MediaSettings.vue'
22-
import PollManager from '../components/PollViewer/PollManager.vue'
23-
import PollViewer from '../components/PollViewer/PollViewer.vue'
24-
import InternalSignalingHint from '../components/RightSidebar/InternalSignalingHint.vue'
25-
import CallButton from '../components/TopBar/CallButton.vue'
26-
import { useGetMessagesProvider } from '../composables/useGetMessages.ts'
27-
import { useGetToken } from '../composables/useGetToken.ts'
28-
import { useIsInCall } from '../composables/useIsInCall.js'
20+
import CallFailedDialog from '../../components/CallView/CallFailedDialog.vue'
21+
import MediaSettings from '../../components/MediaSettings/MediaSettings.vue'
22+
import PollManager from '../../components/PollViewer/PollManager.vue'
23+
import PollViewer from '../../components/PollViewer/PollViewer.vue'
24+
import InternalSignalingHint from '../../components/RightSidebar/InternalSignalingHint.vue'
25+
import CallButton from '../../components/TopBar/CallButton.vue'
26+
import { useGetMessagesProvider } from '../../composables/useGetMessages.ts'
27+
import { useGetToken } from '../../composables/useGetToken.ts'
28+
import { useIsInCall } from '../../composables/useIsInCall.js'
2929
3030
export default {
3131

0 commit comments

Comments
 (0)