Skip to content

refactor(appstore): migrate to Typescript and Vue 3#57290

Merged
susnux merged 14 commits intomasterfrom
refactor/split-appstore
May 5, 2026
Merged

refactor(appstore): migrate to Typescript and Vue 3#57290
susnux merged 14 commits intomasterfrom
refactor/split-appstore

Conversation

@susnux
Copy link
Copy Markdown
Contributor

@susnux susnux commented Dec 30, 2025

Summary

  1. Split the settings app into settings + appstore to separate the means
  2. Adjust router to allow the appstore app to register root URLs (to prevent breaking changes in the URLs)
  3. Migrate appstore frontend to Typescript
  4. Use Vue 3 for the appstore frontend

Checklist

@susnux susnux added this to the Nextcloud 33 milestone Dec 30, 2025
@susnux susnux added enhancement 3. to review Waiting for reviews labels Dec 30, 2025
@susnux susnux added 2. developing Work in progress and removed 3. to review Waiting for reviews labels Dec 30, 2025
@susnux susnux force-pushed the refactor/split-appstore branch from 3a93b94 to d0810b4 Compare December 30, 2025 20:15
@susnux susnux force-pushed the refactor/split-appstore branch from d0810b4 to 3f922df Compare January 16, 2026 21:09
@susnux susnux force-pushed the refactor/split-appstore branch 3 times, most recently from 4843981 to 3ac9531 Compare February 7, 2026 21:11
@blizzz blizzz modified the milestones: Nextcloud 33, Nextcloud 34 Feb 16, 2026
@susnux susnux force-pushed the refactor/split-appstore branch 3 times, most recently from 047e3f1 to e9a6556 Compare April 7, 2026 02:06
@susnux susnux force-pushed the refactor/split-appstore branch from e9a6556 to 36a37f5 Compare April 22, 2026 14:40
@susnux susnux force-pushed the refactor/split-appstore branch 5 times, most recently from 62187b7 to c553e4a Compare April 28, 2026 10:34
@susnux susnux added 3. to review Waiting for reviews feature: apps management and removed 2. developing Work in progress labels Apr 28, 2026
@susnux susnux marked this pull request as ready for review April 28, 2026 11:24
@susnux susnux requested review from a team and provokateurin as code owners April 28, 2026 11:24
@susnux susnux force-pushed the refactor/split-appstore branch from 36c3be6 to 17132cc Compare May 5, 2026 14:00
Copy link
Copy Markdown
Collaborator

@artonge artonge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good got me besides some nitpicks

Comment thread apps/appstore/lib/Controller/ApiController.php
}
}

.officeSuiteSwitcherItem_selected {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't use BEM anymore?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, any reason to not using scss to nest the blocks?

Copy link
Copy Markdown
Contributor Author

@susnux susnux May 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its BEM:

  • Block: officeSuiteSwitcherItem
  • Element: none (its the root)
  • Modifier: selected

Its just using _ instead of - (as per BEM naming guide) as otherwise you cannot properly use it with dot notation like
$style.officeSuiteSwitcherItem_selected vs $style['officeSuiteSwitcherItem--selected']

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, any reason to not using scss to nest the blocks?

No need anymore for SCSS, nowadays this is supported by native CSS nesting.
I also saw many complaining about deep nesting and here no nesting is needed for CSS rule specificity.

Or do you mean for things like this:

.base {
   &__sub {
    // ...
  }
}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its just using _ instead of - (as per BEM naming guide) as otherwise you cannot properly use it with dot notation like
$style.officeSuiteSwitcherItem_selected vs $style['officeSuiteSwitcherItem--selected']

I have no preference, but if this is nicer to use in practice, then we should update our recommendations.

Or do you mean for things like this:

.base {
   &__sub {
    // ...
  }
}

Yes, I was thinking of that. And similarity, if this leads to complaints due to some reason, maybe we should reconsider our recommendations.

<col :style="{ width: isNarrow ? '60%' : '45%' }">
<col>
<col v-if="!isNarrow" style="width: 15%">
<col :style="{ width: isNarrow ? 'calc(3 * var(--default-grid-baseline) + 2 * var(--default-clickable-area))' : '25%' }">
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIRC, css supports block specific break points so that this can be done 100% in css, but that might not be broadly available yet.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I know there are no element specific break points.
Only viewport based breakpoints.

But moved it to the styles

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@susnux susnux force-pushed the refactor/split-appstore branch 4 times, most recently from 15af1c0 to b92937e Compare May 5, 2026 16:00
@susnux
Copy link
Copy Markdown
Contributor Author

susnux commented May 5, 2026

/compile rebase

@susnux susnux enabled auto-merge May 5, 2026 19:34
susnux added 14 commits May 5, 2026 22:14
reduces transfered data from 6MiB to <1MiB

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
… Vue 3

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
@susnux susnux force-pushed the refactor/split-appstore branch from b92937e to 7d8e640 Compare May 5, 2026 20:25
@susnux susnux merged commit 387b40b into master May 5, 2026
235 of 255 checks passed
@susnux susnux deleted the refactor/split-appstore branch May 5, 2026 22:28
@susnux susnux linked an issue May 5, 2026 that may be closed by this pull request
8 tasks
@susnux susnux linked an issue May 5, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

6 participants