diff --git a/.eslintrc.js b/.eslintrc.js index 795f27ed1..d6f99f161 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -6,7 +6,11 @@ module.exports = { parserOptions: { parser: '@typescript-eslint/parser' }, - extends: ['plugin:vue/essential', '@vue/prettier', '@vue/typescript'], + extends: [ + 'plugin:vue/strongly-recommended', + '@vue/prettier', + '@vue/typescript' + ], rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', diff --git a/src/components/Authenticate/AuthenticateButtonPrimary.vue b/src/components/Authenticate/AuthenticateButtonPrimary.vue index bd3899bf5..b21adbe7a 100644 --- a/src/components/Authenticate/AuthenticateButtonPrimary.vue +++ b/src/components/Authenticate/AuthenticateButtonPrimary.vue @@ -4,7 +4,7 @@ :style="styles.container" @click="context.emit('click')" > - {{ props.label }} + {{ label }} @@ -12,10 +12,6 @@ import { defineComponent, SetupContext, reactive } from '@vue/composition-api' import { makeStyles } from '@/lib/styles' -type Props = { - label: string -} - const useStyles = () => reactive({ container: makeStyles(theme => ({ @@ -32,9 +28,9 @@ export default defineComponent({ default: '' } }, - setup(props: Props, context: SetupContext) { + setup(props, context: SetupContext) { const styles = useStyles() - return { props, context, styles } + return { context, styles } } }) diff --git a/src/components/Authenticate/AuthenticateButtonSecondary.vue b/src/components/Authenticate/AuthenticateButtonSecondary.vue index ff2eebc83..e75a1db9f 100644 --- a/src/components/Authenticate/AuthenticateButtonSecondary.vue +++ b/src/components/Authenticate/AuthenticateButtonSecondary.vue @@ -5,12 +5,12 @@ @click="context.emit('click')" > - {{ props.label }} + {{ label }} @@ -19,12 +19,6 @@ import { defineComponent, SetupContext, reactive } from '@vue/composition-api' import { makeStyles } from '@/lib/styles' import Icon from '@/components/UI/Icon.vue' -type Props = { - label: string - iconName?: string - iconMdi: boolean -} - const useStyles = () => reactive({ container: makeStyles(theme => ({ @@ -43,9 +37,9 @@ export default defineComponent({ iconName: String, iconMdi: { type: Boolean, default: false } }, - setup(props: Props, context: SetupContext) { + setup(props, context: SetupContext) { const styles = useStyles() - return { props, context, styles } + return { context, styles } } }) diff --git a/src/components/Authenticate/AuthenticateHeader.vue b/src/components/Authenticate/AuthenticateHeader.vue index 58b3f43b6..a4ed56158 100644 --- a/src/components/Authenticate/AuthenticateHeader.vue +++ b/src/components/Authenticate/AuthenticateHeader.vue @@ -1,8 +1,8 @@ @@ -32,10 +32,6 @@ import MessageFileListFile from './MessageFileListFile.vue' import MessageFileListImage from './MessageFileListImage.vue' import MessageFileListVideo from './MessageFileListVideo.vue' -interface Props { - fileIds: FileId[] -} - export default defineComponent({ name: 'MessageFileList', components: { @@ -49,7 +45,7 @@ export default defineComponent({ default: [] } }, - setup(props: Props) { + setup(props) { const { fileMetaDataState } = useFileMetaList(props) const showLargeImage = computed(() => fileMetaDataState.images.length === 1) return { fileMetaDataState, mimeToFileType, showLargeImage } diff --git a/src/components/Main/MainView/MessageElement/MessageFileListFile.vue b/src/components/Main/MainView/MessageElement/MessageFileListFile.vue index a545d4a1d..820cd86b1 100644 --- a/src/components/Main/MainView/MessageElement/MessageFileListFile.vue +++ b/src/components/Main/MainView/MessageElement/MessageFileListFile.vue @@ -1,17 +1,11 @@ diff --git a/src/components/Main/MainView/MessageElement/MessageFileListVideo.vue b/src/components/Main/MainView/MessageElement/MessageFileListVideo.vue index 912420f16..8bf3d20df 100644 --- a/src/components/Main/MainView/MessageElement/MessageFileListVideo.vue +++ b/src/components/Main/MainView/MessageElement/MessageFileListVideo.vue @@ -1,14 +1,9 @@ @@ -49,7 +44,7 @@ export default defineComponent({ setup(props, context) { const styles = useStyles() const { fileMeta, fileLink, fileRawPath } = useFileMeta(props, context) - return { styles, fileLink, fileRawPath } + return { styles, fileMeta, fileLink, fileRawPath } } }) diff --git a/src/components/Main/MainView/MessageElement/MessageHeader.vue b/src/components/Main/MainView/MessageElement/MessageHeader.vue index 6b42df546..18a23ebcb 100644 --- a/src/components/Main/MainView/MessageElement/MessageHeader.vue +++ b/src/components/Main/MainView/MessageElement/MessageHeader.vue @@ -3,32 +3,31 @@ {{ state.user.displayName }} {{ state.date }} diff --git a/src/components/Main/MainView/MessageInput/MessageInput.vue b/src/components/Main/MainView/MessageInput/MessageInput.vue index 4e464f4e6..5d9dc5880 100644 --- a/src/components/Main/MainView/MessageInput/MessageInput.vue +++ b/src/components/Main/MainView/MessageInput/MessageInput.vue @@ -29,7 +29,7 @@ diff --git a/src/components/Main/MainView/MessageInput/MessageInputTextArea.vue b/src/components/Main/MainView/MessageInput/MessageInputTextArea.vue index c71b0ba4c..75198c593 100644 --- a/src/components/Main/MainView/MessageInput/MessageInputTextArea.vue +++ b/src/components/Main/MainView/MessageInput/MessageInputTextArea.vue @@ -3,7 +3,7 @@ ref="textareaRef" :class="$style.container" :style="styles.container" - :value="props.text" + :value="text" placeholder="メッセージを送信" @input="onInput" @keydown="onKeyDown" @@ -42,11 +42,6 @@ const useEnterWatcher = (context: SetupContext) => { return { onKeyDown } } -type Props = { - text: string - shouldUpdateTextAreaSize: boolean -} - export default defineComponent({ name: 'MessageInputTextArea', props: { @@ -59,7 +54,7 @@ export default defineComponent({ default: false } }, - setup(props: Props, context: SetupContext) { + setup(props, context: SetupContext) { const styles = useStyles() const { onInput } = useInput(context) const { onKeyDown } = useEnterWatcher(context) @@ -78,7 +73,6 @@ export default defineComponent({ } }) return { - props, styles, onInput, onKeyDown, diff --git a/src/components/Main/MainView/MessagesScroller.vue b/src/components/Main/MainView/MessagesScroller.vue index bdc9deef1..1994b1bc5 100644 --- a/src/components/Main/MainView/MessagesScroller.vue +++ b/src/components/Main/MainView/MessagesScroller.vue @@ -3,9 +3,9 @@
@@ -20,17 +20,14 @@ import { computed, SetupContext, ref, - onMounted + onMounted, + PropType } from '@vue/composition-api' import { MessageId } from '@/types/entity-ids' import store from '@/store' import MessageElement from './MessageElement/MessageElement.vue' import { throttle } from 'lodash-es' -interface Props { - messageIds: MessageId[] -} - const LOAD_MORE_THRESHOLD = 10 export default defineComponent({ @@ -40,11 +37,11 @@ export default defineComponent({ }, props: { messageIds: { - type: Array, + type: Array as PropType, required: true } }, - setup(props: Props, context: SetupContext) { + setup(props, context: SetupContext) { const state = reactive({ height: 0, scrollTop: 0, @@ -107,7 +104,6 @@ export default defineComponent({ } return { - props, state, rootRef, handleScroll, diff --git a/src/components/Main/MainView/MessagesView.vue b/src/components/Main/MainView/MessagesView.vue index bf100515d..eae5c5337 100644 --- a/src/components/Main/MainView/MessagesView.vue +++ b/src/components/Main/MainView/MessagesView.vue @@ -10,7 +10,7 @@ v-if="fileDragDropState.isDragging" :class="$style.fileUploadOverlay" /> - + @@ -32,9 +32,6 @@ import MessageInput from '@/components/Main/MainView/MessageInput/MessageInput.v import MessagesViewFileUploadOverlay from './MessagesViewFileUploadOverlay.vue' import { debounce } from 'lodash-es' -type Props = { - channelId: ChannelId -} const useFileDragDrop = (dropAreaRef: Ref) => { const state = reactive({ isDragging: false @@ -65,9 +62,8 @@ const useFileDragDrop = (dropAreaRef: Ref) => { export default defineComponent({ name: 'MessagesView', - props: { channelId: String }, components: { MessagesScroller, MessageInput, MessagesViewFileUploadOverlay }, - setup(props: Props, _: SetupContext) { + setup() { const state = reactive({ channelMessageIds: computed( () => store.state.domain.messagesView.messageIds @@ -88,7 +84,6 @@ export default defineComponent({ containerRef ) return { - props, state, fileDragDropState, containerStyle, diff --git a/src/components/Main/Modal/SettingModal/NavigationContent.vue b/src/components/Main/Modal/SettingModal/NavigationContent.vue index cfed6224c..d87077ecd 100644 --- a/src/components/Main/Modal/SettingModal/NavigationContent.vue +++ b/src/components/Main/Modal/SettingModal/NavigationContent.vue @@ -1,16 +1,22 @@ diff --git a/src/components/Main/Modal/SettingModal/NavigationContentTitle.vue b/src/components/Main/Modal/SettingModal/NavigationContentTitle.vue index b1a6f4eaf..fdfebb657 100644 --- a/src/components/Main/Modal/SettingModal/NavigationContentTitle.vue +++ b/src/components/Main/Modal/SettingModal/NavigationContentTitle.vue @@ -5,23 +5,19 @@ diff --git a/src/components/Main/Modal/UserModal/GroupsTab.vue b/src/components/Main/Modal/UserModal/GroupsTab.vue index 689a69773..a0674e675 100644 --- a/src/components/Main/Modal/UserModal/GroupsTab.vue +++ b/src/components/Main/Modal/UserModal/GroupsTab.vue @@ -18,7 +18,12 @@ diff --git a/src/components/Main/Navigation/ChannelList/ChannelList.vue b/src/components/Main/Navigation/ChannelList/ChannelList.vue index dbfdfe88d..7f7edf7c6 100644 --- a/src/components/Main/Navigation/ChannelList/ChannelList.vue +++ b/src/components/Main/Navigation/ChannelList/ChannelList.vue @@ -1,12 +1,12 @@ diff --git a/src/components/Main/Navigation/NavigationContent/Activity.vue b/src/components/Main/Navigation/NavigationContent/Activity.vue index b17824861..95b20a140 100644 --- a/src/components/Main/Navigation/NavigationContent/Activity.vue +++ b/src/components/Main/Navigation/NavigationContent/Activity.vue @@ -20,14 +20,12 @@ import { makeStyles } from '@/lib/styles' import store from '@/store' import ActivityElement from './ActivityElement.vue' -type Props = {} - export default defineComponent({ name: 'Activity', components: { ActivityElement }, - setup(props: Props, context: SetupContext) { + setup(_, context: SetupContext) { const state = reactive({ messages: computed(() => store.state.domain.channelActivity) }) diff --git a/src/components/Main/Navigation/NavigationContent/ActivityElement.vue b/src/components/Main/Navigation/NavigationContent/ActivityElement.vue index bb6fe846b..673ba61e9 100644 --- a/src/components/Main/Navigation/NavigationContent/ActivityElement.vue +++ b/src/components/Main/Navigation/NavigationContent/ActivityElement.vue @@ -9,16 +9,16 @@
- + diff --git a/src/components/Main/Navigation/NavigationContent/UsersSeparator.vue b/src/components/Main/Navigation/NavigationContent/UsersSeparator.vue index e81d04e8d..19af2dc35 100644 --- a/src/components/Main/Navigation/NavigationContent/UsersSeparator.vue +++ b/src/components/Main/Navigation/NavigationContent/UsersSeparator.vue @@ -1,6 +1,6 @@ diff --git a/src/components/Main/StampPicker/StampPickerEffectSelector.vue b/src/components/Main/StampPicker/StampPickerEffectSelector.vue index ca1e80e77..55965ffa1 100644 --- a/src/components/Main/StampPicker/StampPickerEffectSelector.vue +++ b/src/components/Main/StampPicker/StampPickerEffectSelector.vue @@ -3,16 +3,12 @@ diff --git a/src/components/Main/StampPicker/StampPickerStampListItem.vue b/src/components/Main/StampPicker/StampPickerStampListItem.vue index b50f1ddae..80d70d766 100644 --- a/src/components/Main/StampPicker/StampPickerStampListItem.vue +++ b/src/components/Main/StampPicker/StampPickerStampListItem.vue @@ -6,12 +6,17 @@ :class="$style.container" :style="styles.container" > - + diff --git a/src/components/Main/StampPicker/StampPickerStampSetSelector.vue b/src/components/Main/StampPicker/StampPickerStampSetSelector.vue index 97f40cad2..6967fb69a 100644 --- a/src/components/Main/StampPicker/StampPickerStampSetSelector.vue +++ b/src/components/Main/StampPicker/StampPickerStampSetSelector.vue @@ -2,11 +2,11 @@
@@ -14,7 +14,7 @@ diff --git a/src/components/Main/StampPicker/StampPickerStampSetSelectorItem.vue b/src/components/Main/StampPicker/StampPickerStampSetSelectorItem.vue index fc7a9820e..8177dfa09 100644 --- a/src/components/Main/StampPicker/StampPickerStampSetSelectorItem.vue +++ b/src/components/Main/StampPicker/StampPickerStampSetSelectorItem.vue @@ -5,24 +5,24 @@ @click="context.emit('click')" >
diff --git a/src/components/UI/CircleIcon.vue b/src/components/UI/CircleIcon.vue index 3645df58a..aa3e15889 100644 --- a/src/components/UI/CircleIcon.vue +++ b/src/components/UI/CircleIcon.vue @@ -2,10 +2,10 @@
@@ -25,15 +25,6 @@ const useStyles = (props: { background: string; size: number }) => { }) } -type Props = { - color: string - background: string - name: string - mdi?: boolean - innerSize: number - size: number -} - export default defineComponent({ name: 'CircleIcon', components: { Icon }, @@ -60,9 +51,9 @@ export default defineComponent({ default: 24 } }, - setup(props: Props) { + setup(props) { const styles = useStyles(props) - return { props, styles } + return { styles } } }) diff --git a/src/components/UI/EmptyState.vue b/src/components/UI/EmptyState.vue index 1dda6241a..344b3493e 100644 --- a/src/components/UI/EmptyState.vue +++ b/src/components/UI/EmptyState.vue @@ -8,11 +8,9 @@ import { defineComponent } from '@vue/composition-api' import { makeStyles } from '@/lib/styles' -type Props = {} - export default defineComponent({ name: 'EmptyState', - setup(props: Props) { + setup() { return { containerStyle: makeStyles(theme => ({ color: theme.ui.tertiary diff --git a/src/components/UI/FilterInput.vue b/src/components/UI/FilterInput.vue index 676158c90..ced8c1cc4 100644 --- a/src/components/UI/FilterInput.vue +++ b/src/components/UI/FilterInput.vue @@ -4,8 +4,8 @@ @@ -13,18 +13,12 @@ diff --git a/src/components/UI/Icon.vue b/src/components/UI/Icon.vue index e0efb21ba..f89ba3b09 100644 --- a/src/components/UI/Icon.vue +++ b/src/components/UI/Icon.vue @@ -1,25 +1,25 @@