From 53422ffcb296be404c0f3ef7e175bedecca4fb4d Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 15 Feb 2019 05:08:59 +0900 Subject: Improve desktop UX (#4262) * wip * wip * wip * wip * wip * wip * Merge * wip * wip * wip * wip * wip * wip --- src/client/app/desktop/script.ts | 37 +- src/client/app/desktop/views/components/home.vue | 396 ---------------- src/client/app/desktop/views/components/index.ts | 4 - .../app/desktop/views/components/settings.vue | 19 +- .../app/desktop/views/components/timeline.core.vue | 195 -------- .../app/desktop/views/components/timeline.vue | 264 ----------- .../desktop/views/components/ui.header.account.vue | 7 - .../app/desktop/views/components/ui.header.nav.vue | 19 +- .../app/desktop/views/components/ui.sidebar.vue | 2 +- .../app/desktop/views/deck/deck.column-core.vue | 49 ++ src/client/app/desktop/views/deck/deck.column.vue | 421 +++++++++++++++++ .../app/desktop/views/deck/deck.direct-column.vue | 46 ++ src/client/app/desktop/views/deck/deck.direct.vue | 101 ++++ .../desktop/views/deck/deck.favorites-column.vue | 88 ++++ .../app/desktop/views/deck/deck.hashtag-column.vue | 119 +++++ .../app/desktop/views/deck/deck.hashtag-tl.vue | 126 +++++ src/client/app/desktop/views/deck/deck.list-tl.vue | 136 ++++++ .../desktop/views/deck/deck.mentions-column.vue | 46 ++ .../app/desktop/views/deck/deck.mentions.vue | 97 ++++ .../app/desktop/views/deck/deck.note-column.vue | 77 ++++ src/client/app/desktop/views/deck/deck.notes.vue | 245 ++++++++++ .../app/desktop/views/deck/deck.notification.vue | 193 ++++++++ .../views/deck/deck.notifications-column.vue | 40 ++ .../app/desktop/views/deck/deck.notifications.vue | 223 +++++++++ .../app/desktop/views/deck/deck.tl-column.vue | 105 +++++ src/client/app/desktop/views/deck/deck.tl.vue | 151 ++++++ .../app/desktop/views/deck/deck.user-column.vue | 507 +++++++++++++++++++++ src/client/app/desktop/views/deck/deck.vue | 385 ++++++++++++++++ .../app/desktop/views/deck/deck.widgets-column.vue | 172 +++++++ src/client/app/desktop/views/home/favorites.vue | 83 ++++ src/client/app/desktop/views/home/home.vue | 400 ++++++++++++++++ src/client/app/desktop/views/home/note.vue | 63 +++ src/client/app/desktop/views/home/tag.vue | 117 +++++ .../app/desktop/views/home/timeline.core.vue | 195 ++++++++ src/client/app/desktop/views/home/timeline.vue | 273 +++++++++++ .../views/home/user/user.followers-you-know.vue | 84 ++++ .../app/desktop/views/home/user/user.friends.vue | 112 +++++ .../app/desktop/views/home/user/user.header.vue | 272 +++++++++++ .../home/user/user.integrations.integration.vue | 14 + .../desktop/views/home/user/user.integrations.vue | 63 +++ .../app/desktop/views/home/user/user.photos.vue | 106 +++++ .../app/desktop/views/home/user/user.timeline.vue | 175 +++++++ src/client/app/desktop/views/home/user/user.vue | 109 +++++ .../desktop/views/pages/deck/deck.column-core.vue | 49 -- .../app/desktop/views/pages/deck/deck.column.vue | 424 ----------------- .../views/pages/deck/deck.direct-column.vue | 46 -- .../app/desktop/views/pages/deck/deck.direct.vue | 101 ---- .../views/pages/deck/deck.hashtag-column.vue | 112 ----- .../desktop/views/pages/deck/deck.hashtag-tl.vue | 126 ----- .../app/desktop/views/pages/deck/deck.list-tl.vue | 136 ------ .../views/pages/deck/deck.mentions-column.vue | 46 -- .../app/desktop/views/pages/deck/deck.mentions.vue | 97 ---- .../desktop/views/pages/deck/deck.note-column.vue | 70 --- .../app/desktop/views/pages/deck/deck.notes.vue | 245 ---------- .../desktop/views/pages/deck/deck.notification.vue | 193 -------- .../views/pages/deck/deck.notifications-column.vue | 40 -- .../views/pages/deck/deck.notifications.vue | 223 --------- .../desktop/views/pages/deck/deck.tl-column.vue | 105 ----- .../app/desktop/views/pages/deck/deck.tl.vue | 151 ------ .../desktop/views/pages/deck/deck.user-column.vue | 505 -------------------- src/client/app/desktop/views/pages/deck/deck.vue | 433 ------------------ .../views/pages/deck/deck.widgets-column.vue | 172 ------- src/client/app/desktop/views/pages/favorites.vue | 87 ---- .../app/desktop/views/pages/home-customize.vue | 3 - src/client/app/desktop/views/pages/home.vue | 39 -- src/client/app/desktop/views/pages/index.vue | 25 - src/client/app/desktop/views/pages/note.vue | 66 --- src/client/app/desktop/views/pages/tag.vue | 126 ----- .../views/pages/user/user.followers-you-know.vue | 84 ---- .../app/desktop/views/pages/user/user.friends.vue | 112 ----- .../app/desktop/views/pages/user/user.header.vue | 253 ---------- .../pages/user/user.integrations.integration.vue | 14 - .../desktop/views/pages/user/user.integrations.vue | 63 --- .../app/desktop/views/pages/user/user.photos.vue | 106 ----- .../app/desktop/views/pages/user/user.profile.vue | 66 --- .../app/desktop/views/pages/user/user.timeline.vue | 175 ------- src/client/app/desktop/views/pages/user/user.vue | 155 ------- src/client/app/desktop/views/widgets/customize.vue | 21 + src/client/app/desktop/views/widgets/index.ts | 2 + 79 files changed, 5449 insertions(+), 5558 deletions(-) delete mode 100644 src/client/app/desktop/views/components/home.vue delete mode 100644 src/client/app/desktop/views/components/timeline.core.vue delete mode 100644 src/client/app/desktop/views/components/timeline.vue create mode 100644 src/client/app/desktop/views/deck/deck.column-core.vue create mode 100644 src/client/app/desktop/views/deck/deck.column.vue create mode 100644 src/client/app/desktop/views/deck/deck.direct-column.vue create mode 100644 src/client/app/desktop/views/deck/deck.direct.vue create mode 100644 src/client/app/desktop/views/deck/deck.favorites-column.vue create mode 100644 src/client/app/desktop/views/deck/deck.hashtag-column.vue create mode 100644 src/client/app/desktop/views/deck/deck.hashtag-tl.vue create mode 100644 src/client/app/desktop/views/deck/deck.list-tl.vue create mode 100644 src/client/app/desktop/views/deck/deck.mentions-column.vue create mode 100644 src/client/app/desktop/views/deck/deck.mentions.vue create mode 100644 src/client/app/desktop/views/deck/deck.note-column.vue create mode 100644 src/client/app/desktop/views/deck/deck.notes.vue create mode 100644 src/client/app/desktop/views/deck/deck.notification.vue create mode 100644 src/client/app/desktop/views/deck/deck.notifications-column.vue create mode 100644 src/client/app/desktop/views/deck/deck.notifications.vue create mode 100644 src/client/app/desktop/views/deck/deck.tl-column.vue create mode 100644 src/client/app/desktop/views/deck/deck.tl.vue create mode 100644 src/client/app/desktop/views/deck/deck.user-column.vue create mode 100644 src/client/app/desktop/views/deck/deck.vue create mode 100644 src/client/app/desktop/views/deck/deck.widgets-column.vue create mode 100644 src/client/app/desktop/views/home/favorites.vue create mode 100644 src/client/app/desktop/views/home/home.vue create mode 100644 src/client/app/desktop/views/home/note.vue create mode 100644 src/client/app/desktop/views/home/tag.vue create mode 100644 src/client/app/desktop/views/home/timeline.core.vue create mode 100644 src/client/app/desktop/views/home/timeline.vue create mode 100644 src/client/app/desktop/views/home/user/user.followers-you-know.vue create mode 100644 src/client/app/desktop/views/home/user/user.friends.vue create mode 100644 src/client/app/desktop/views/home/user/user.header.vue create mode 100644 src/client/app/desktop/views/home/user/user.integrations.integration.vue create mode 100644 src/client/app/desktop/views/home/user/user.integrations.vue create mode 100644 src/client/app/desktop/views/home/user/user.photos.vue create mode 100644 src/client/app/desktop/views/home/user/user.timeline.vue create mode 100644 src/client/app/desktop/views/home/user/user.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.column-core.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.column.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.direct-column.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.direct.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.hashtag-column.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.hashtag-tl.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.list-tl.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.mentions-column.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.mentions.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.note-column.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.notes.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.notification.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.notifications-column.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.notifications.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.tl-column.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.tl.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.user-column.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.vue delete mode 100644 src/client/app/desktop/views/pages/deck/deck.widgets-column.vue delete mode 100644 src/client/app/desktop/views/pages/favorites.vue delete mode 100644 src/client/app/desktop/views/pages/home-customize.vue delete mode 100644 src/client/app/desktop/views/pages/home.vue delete mode 100644 src/client/app/desktop/views/pages/index.vue delete mode 100644 src/client/app/desktop/views/pages/note.vue delete mode 100644 src/client/app/desktop/views/pages/tag.vue delete mode 100644 src/client/app/desktop/views/pages/user/user.followers-you-know.vue delete mode 100644 src/client/app/desktop/views/pages/user/user.friends.vue delete mode 100644 src/client/app/desktop/views/pages/user/user.header.vue delete mode 100644 src/client/app/desktop/views/pages/user/user.integrations.integration.vue delete mode 100644 src/client/app/desktop/views/pages/user/user.integrations.vue delete mode 100644 src/client/app/desktop/views/pages/user/user.photos.vue delete mode 100644 src/client/app/desktop/views/pages/user/user.profile.vue delete mode 100644 src/client/app/desktop/views/pages/user/user.timeline.vue delete mode 100644 src/client/app/desktop/views/pages/user/user.vue create mode 100644 src/client/app/desktop/views/widgets/customize.vue (limited to 'src/client/app/desktop') diff --git a/src/client/app/desktop/script.ts b/src/client/app/desktop/script.ts index 05cd79f706..26fe273394 100644 --- a/src/client/app/desktop/script.ts +++ b/src/client/app/desktop/script.ts @@ -12,19 +12,13 @@ import init from '../init'; import fuckAdBlock from '../common/scripts/fuck-ad-block'; import composeNotification from '../common/scripts/compose-notification'; -import MkIndex from './views/pages/index.vue'; -import MkHome from './views/pages/home.vue'; -import MkDeck from './views/pages/deck/deck.vue'; -import MkUser from './views/pages/user/user.vue'; +import MkHome from './views/home/home.vue'; +import MkDeck from './views/deck/deck.vue'; import MkUserFollowingOrFollowers from './views/pages/user-following-or-followers.vue'; -import MkFavorites from './views/pages/favorites.vue'; import MkSelectDrive from './views/pages/selectdrive.vue'; import MkDrive from './views/pages/drive.vue'; -import MkHomeCustomize from './views/pages/home-customize.vue'; import MkMessagingRoom from './views/pages/messaging-room.vue'; -import MkNote from './views/pages/note.vue'; import MkSearch from './views/pages/search.vue'; -import MkTag from './views/pages/tag.vue'; import MkReversi from './views/pages/games/reversi.vue'; import MkShare from './views/pages/share.vue'; import MkFollow from '../common/views/pages/follow.vue'; @@ -36,6 +30,7 @@ import PostFormWindow from './views/components/post-form-window.vue'; import RenoteFormWindow from './views/components/renote-form-window.vue'; import MkChooseFileFromDriveWindow from './views/components/choose-file-from-drive-window.vue'; import MkChooseFolderFromDriveWindow from './views/components/choose-folder-from-drive-window.vue'; +import MkHomeTimeline from './views/home/timeline.vue'; import Notification from './views/components/ui-notification.vue'; import { url } from '../config'; @@ -44,7 +39,7 @@ import MiOS from '../mios'; /** * init */ -init(async (launch) => { +init(async (launch, os) => { Vue.mixin({ methods: { $contextmenu(e, menu, opts?) { @@ -134,31 +129,37 @@ init(async (launch) => { const router = new VueRouter({ mode: 'history', routes: [ - { path: '/', name: 'index', component: MkIndex }, - { path: '/home', name: 'home', component: MkHome }, - { path: '/deck', name: 'deck', component: MkDeck }, - { path: '/i/customize-home', component: MkHomeCustomize }, - { path: '/i/favorites', component: MkFavorites }, + os.store.getters.isSignedIn && os.store.state.device.deckMode + ? { path: '/', name: 'index', component: MkDeck, children: [ + { path: '/@:user', name: 'user', component: () => import('./views/deck/deck.user-column.vue').then(m => m.default) }, + { path: '/notes/:note', name: 'note', component: () => import('./views/deck/deck.note-column.vue').then(m => m.default) }, + { path: '/tags/:tag', name: 'tag', component: () => import('./views/deck/deck.hashtag-column.vue').then(m => m.default) }, + { path: '/i/favorites', component: () => import('./views/deck/deck.favorites-column.vue').then(m => m.default) } + ]} + : { path: '/', component: MkHome, children: [ + { path: '', name: 'index', component: MkHomeTimeline }, + { path: '/@:user', name: 'user', component: () => import('./views/home/user/user.vue').then(m => m.default) }, + { path: '/notes/:note', name: 'note', component: () => import('./views/home/note.vue').then(m => m.default) }, + { path: '/tags/:tag', name: 'tag', component: () => import('./views/home/tag.vue').then(m => m.default) }, + { path: '/i/favorites', component: () => import('./views/home/favorites.vue').then(m => m.default) } + ]}, { path: '/i/messaging/:user', component: MkMessagingRoom }, { path: '/i/drive', component: MkDrive }, { path: '/i/drive/folder/:folder', component: MkDrive }, { path: '/i/settings', component: MkSettings }, { path: '/selectdrive', component: MkSelectDrive }, { path: '/search', component: MkSearch }, - { path: '/tags/:tag', name: 'tag', component: MkTag }, { path: '/share', component: MkShare }, { path: '/games/reversi/:game?', component: MkReversi }, - { path: '/@:user', name: 'user', component: MkUser }, { path: '/@:user/following', name: 'userFollowing', component: MkUserFollowingOrFollowers }, { path: '/@:user/followers', name: 'userFollowers', component: MkUserFollowingOrFollowers }, - { path: '/notes/:note', name: 'note', component: MkNote }, { path: '/authorize-follow', component: MkFollow }, { path: '*', component: MkNotFound } ] }); // Launch the app - const [app, os] = launch(router); + const [app, _] = launch(router); if (os.store.getters.isSignedIn) { /** diff --git a/src/client/app/desktop/views/components/home.vue b/src/client/app/desktop/views/components/home.vue deleted file mode 100644 index 18cb215202..0000000000 --- a/src/client/app/desktop/views/components/home.vue +++ /dev/null @@ -1,396 +0,0 @@ - - - - - diff --git a/src/client/app/desktop/views/components/index.ts b/src/client/app/desktop/views/components/index.ts index 2edc8117a8..0bc6fa9af4 100644 --- a/src/client/app/desktop/views/components/index.ts +++ b/src/client/app/desktop/views/components/index.ts @@ -2,8 +2,6 @@ import Vue from 'vue'; import ui from './ui.vue'; import uiNotification from './ui-notification.vue'; -import home from './home.vue'; -import timeline from './timeline.vue'; import notes from './notes.vue'; import subNoteContent from './sub-note-content.vue'; import window from './window.vue'; @@ -24,8 +22,6 @@ import widgetContainer from './widget-container.vue'; Vue.component('mk-ui', ui); Vue.component('mk-ui-notification', uiNotification); -Vue.component('mk-home', home); -Vue.component('mk-timeline', timeline); Vue.component('mk-notes', notes); Vue.component('mk-sub-note-content', subNoteContent); Vue.component('mk-window', window); diff --git a/src/client/app/desktop/views/components/settings.vue b/src/client/app/desktop/views/components/settings.vue index 3452122b9a..e4e7830a16 100644 --- a/src/client/app/desktop/views/components/settings.vue +++ b/src/client/app/desktop/views/components/settings.vue @@ -31,9 +31,6 @@ {{ $t('auto-popout') }} {{ $t('auto-popout-desc') }} - {{ $t('deck-nav') }} - {{ $t('deck-nav-desc') }} - {{ $t('keep-cw') }} {{ $t('keep-cw-desc') }} @@ -89,9 +86,6 @@ {{ $t('navbar-position-left') }} {{ $t('navbar-position-right') }} -
- {{ $t('deck-default') }} -
{{ $t('dark-mode') }} {{ $t('use-shadow') }} @@ -337,11 +331,6 @@ export default Vue.extend({ set(value) { this.$store.commit('device/set', { key: 'autoPopout', value }); } }, - deckNav: { - get() { return this.$store.state.settings.deckNav; }, - set(value) { this.$store.commit('settings/set', { key: 'deckNav', value }); } - }, - keepCw: { get() { return this.$store.state.settings.keepCw; }, set(value) { this.$store.commit('settings/set', { key: 'keepCw', value }); } @@ -367,11 +356,6 @@ export default Vue.extend({ set(value) { this.$store.commit('device/set', { key: 'deckColumnWidth', value }); } }, - deckDefault: { - get() { return this.$store.state.device.deckDefault; }, - set(value) { this.$store.commit('device/set', { key: 'deckDefault', value }); } - }, - enableSounds: { get() { return this.$store.state.device.enableSounds; }, set(value) { this.$store.commit('device/set', { key: 'enableSounds', value }); } @@ -534,8 +518,7 @@ export default Vue.extend({ }, methods: { customizeHome() { - this.$router.push('/i/customize-home'); - this.$emit('done'); + location.href = '/?customize'; }, updateWallpaper() { this.$chooseDriveFile({ diff --git a/src/client/app/desktop/views/components/timeline.core.vue b/src/client/app/desktop/views/components/timeline.core.vue deleted file mode 100644 index 63bc20dc28..0000000000 --- a/src/client/app/desktop/views/components/timeline.core.vue +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - diff --git a/src/client/app/desktop/views/components/timeline.vue b/src/client/app/desktop/views/components/timeline.vue deleted file mode 100644 index 0a91cfb59d..0000000000 --- a/src/client/app/desktop/views/components/timeline.vue +++ /dev/null @@ -1,264 +0,0 @@ - - - - - diff --git a/src/client/app/desktop/views/components/ui.header.account.vue b/src/client/app/desktop/views/components/ui.header.account.vue index bc7a8b2231..4a3cc71548 100644 --- a/src/client/app/desktop/views/components/ui.header.account.vue +++ b/src/client/app/desktop/views/components/ui.header.account.vue @@ -44,13 +44,6 @@