From da425220736dc14e52e9ce2556ede511418b7918 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Fri, 27 Nov 2020 19:27:44 +0100 Subject: [PATCH] Fix eslint warnings Signed-off-by: Thomas Citharel --- js/.eslintrc.js | 2 + js/src/@types/dom.d.ts | 18 ++ js/src/apollo/user.ts | 7 +- js/src/components/Account/Identities.vue | 2 +- js/src/components/Account/ParticipantCard.vue | 94 ---------- .../components/Account/PopoverActorCard.vue | 3 +- js/src/components/Admin/Followings.vue | 1 - js/src/components/Comment/Comment.vue | 2 +- js/src/components/Comment/CommentTree.vue | 2 +- js/src/components/Editor.vue | 10 +- js/src/components/Editor/MaxSize.ts | 5 +- .../components/Event/AddressAutoComplete.vue | 8 +- js/src/components/Event/EventCard.vue | 2 +- js/src/components/Event/EventListCard.vue | 5 +- js/src/components/Event/EventListViewCard.vue | 4 +- .../components/Event/EventMinimalistCard.vue | 2 +- .../Event/FullAddressAutoComplete.vue | 10 +- js/src/components/Event/OrganizerPicker.vue | 4 +- .../Event/OrganizerPickerWrapper.vue | 5 +- .../components/Event/ParticipationButton.vue | 5 +- js/src/components/Event/ShareEventModal.vue | 6 +- js/src/components/Event/TagInput.vue | 7 +- js/src/components/Group/GroupMemberCard.vue | 4 +- js/src/components/Group/GroupPicker.vue | 4 +- .../components/Group/GroupPickerWrapper.vue | 3 +- js/src/components/Group/InvitationCard.vue | 3 +- js/src/components/Group/Invitations.vue | 2 +- js/src/components/Map.vue | 26 +-- .../Map/Vue2LeafletLocateControl.vue | 8 +- js/src/components/NavBar.vue | 3 +- .../Participation/ConfirmParticipation.vue | 2 +- .../ParticipationWithoutAccount.vue | 5 +- js/src/components/Post/PostElementItem.vue | 3 +- js/src/components/Report/ReportCard.vue | 2 +- js/src/components/Report/ReportModal.vue | 2 +- .../components/Resource/ResourceDropdown.vue | 2 +- .../components/Resource/ResourceSelector.vue | 12 +- js/src/components/SearchField.vue | 4 +- .../components/Settings/SettingMenuItem.vue | 2 +- .../Settings/SettingMenuSection.vue | 3 +- js/src/components/Settings/SettingsMenu.vue | 5 +- js/src/components/Todo/FullTodo.vue | 4 +- .../components/Utils/RedirectWithAccount.vue | 2 +- js/src/mixins/actor.ts | 4 +- js/src/mixins/event.ts | 3 +- js/src/mixins/group.ts | 3 +- js/src/mixins/relay.ts | 3 +- js/src/router/event.ts | 14 +- js/src/router/guards/auth-guard.ts | 2 +- js/src/router/guards/register-guard.ts | 2 +- js/src/router/settings.ts | 12 +- js/src/router/user.ts | 4 +- .../services/AnonymousParticipationStorage.ts | 49 +++--- js/src/types/actor/actor.model.ts | 11 +- js/src/types/actor/follower.model.ts | 2 +- js/src/types/actor/group.model.ts | 47 ++--- js/src/types/actor/member.model.ts | 12 ++ js/src/types/actor/person.model.ts | 20 +-- js/src/types/address.model.ts | 5 +- js/src/types/admin.model.ts | 18 +- js/src/types/comment.model.ts | 6 +- js/src/types/config.model.ts | 4 +- js/src/types/current-user.model.ts | 33 +--- js/src/types/discussions.ts | 7 +- js/src/types/enums.ts | 161 ++++++++++++++++++ js/src/types/error-code.model.ts | 4 - js/src/types/event-options.model.ts | 8 +- js/src/types/event.model.ts | 53 ++---- js/src/types/feedtoken.model.ts | 8 + js/src/types/login-error-code.model.ts | 16 -- js/src/types/login.model.ts | 2 +- js/src/types/participant.model.ts | 17 +- js/src/types/post.model.ts | 14 +- js/src/types/report.model.ts | 42 ++--- js/src/types/resource.ts | 35 ++-- js/src/types/search.model.ts | 9 +- js/src/types/todolist.ts | 10 ++ js/src/types/todos.ts | 11 +- js/src/utils/.editorconfig | 22 --- js/src/utils/asyncForEach.ts | 6 +- js/src/utils/auth.ts | 18 +- js/src/utils/html.ts | 2 +- js/src/utils/i18n.ts | 11 +- js/src/utils/image.ts | 6 +- js/src/utils/object.ts | 5 - js/src/utils/username.ts | 21 +-- js/src/utils/validators.ts | 4 +- js/src/views/About/Privacy.vue | 9 +- js/src/views/About/Rules.vue | 3 +- js/src/views/About/Terms.vue | 9 +- js/src/views/Admin/AdminGroupProfile.vue | 3 +- js/src/views/Admin/AdminUserProfile.vue | 3 +- js/src/views/Admin/GroupProfiles.vue | 13 +- js/src/views/Admin/Profiles.vue | 12 +- js/src/views/Admin/Settings.vue | 8 +- js/src/views/Admin/Users.vue | 2 +- js/src/views/Discussions/Discussion.vue | 49 +++--- js/src/views/Error.vue | 4 +- js/src/views/Event/Edit.vue | 24 +-- js/src/views/Event/Event.vue | 11 +- js/src/views/Event/GroupEvents.vue | 3 +- js/src/views/Event/MyEvents.vue | 3 +- js/src/views/Event/Participants.vue | 3 +- js/src/views/Group/Create.vue | 5 +- js/src/views/Group/Group.vue | 4 +- js/src/views/Group/GroupMembers.vue | 3 +- js/src/views/Group/GroupSettings.vue | 3 +- js/src/views/Group/MyGroups.vue | 4 +- js/src/views/Home.vue | 13 +- js/src/views/Location.vue | 32 ---- js/src/views/Moderation/Logs.vue | 3 +- js/src/views/Moderation/Report.vue | 5 +- js/src/views/Moderation/ReportList.vue | 3 +- js/src/views/PageNotFound.vue | 4 +- js/src/views/Posts/Edit.vue | 3 +- js/src/views/Posts/List.vue | 3 +- js/src/views/Posts/Post.vue | 7 +- js/src/views/Resources/ResourceFolder.vue | 14 +- js/src/views/Search.vue | 2 +- js/src/views/Settings.vue | 5 +- js/src/views/Settings/AccountSettings.vue | 5 +- js/src/views/Settings/Notifications.vue | 3 +- js/src/views/Todos/TodoList.vue | 5 +- js/src/views/Todos/TodoLists.vue | 2 +- js/src/views/User/Login.vue | 4 +- js/src/views/User/PasswordReset.vue | 8 +- js/src/views/User/ProviderValidation.vue | 75 ++++---- js/src/views/User/Register.vue | 1 - js/src/views/User/ResendConfirmation.vue | 4 +- js/src/views/User/Validate.vue | 6 +- 130 files changed, 702 insertions(+), 734 deletions(-) create mode 100644 js/src/@types/dom.d.ts delete mode 100644 js/src/components/Account/ParticipantCard.vue create mode 100644 js/src/types/actor/member.model.ts create mode 100644 js/src/types/enums.ts delete mode 100644 js/src/types/error-code.model.ts create mode 100644 js/src/types/feedtoken.model.ts delete mode 100644 js/src/types/login-error-code.model.ts create mode 100644 js/src/types/todolist.ts delete mode 100644 js/src/utils/.editorconfig delete mode 100644 js/src/utils/object.ts delete mode 100644 js/src/views/Location.vue diff --git a/js/.eslintrc.js b/js/.eslintrc.js index ac692e5ee..d29e98c47 100644 --- a/js/.eslintrc.js +++ b/js/.eslintrc.js @@ -48,6 +48,8 @@ module.exports = { "import/prefer-default-export": "off", "import/extensions": "off", "import/no-unresolved": "off", + "no-shadow": "off", + "@typescript-eslint/no-shadow": ["error"], }, ignorePatterns: ["src/typings/*.d.ts", "vue.config.js"], diff --git a/js/src/@types/dom.d.ts b/js/src/@types/dom.d.ts new file mode 100644 index 000000000..59a3a0781 --- /dev/null +++ b/js/src/@types/dom.d.ts @@ -0,0 +1,18 @@ +declare global { + interface GeolocationCoordinates { + readonly accuracy: number; + readonly altitude: number | null; + readonly altitudeAccuracy: number | null; + readonly heading: number | null; + readonly latitude: number; + readonly longitude: number; + readonly speed: number | null; + } + + interface GeolocationPosition { + readonly coords: GeolocationCoordinates; + readonly timestamp: number; + } +} + +export {}; diff --git a/js/src/apollo/user.ts b/js/src/apollo/user.ts index 5abd70fcf..824df6f73 100644 --- a/js/src/apollo/user.ts +++ b/js/src/apollo/user.ts @@ -1,8 +1,11 @@ +import { ICurrentUserRole } from "@/types/enums"; import { ApolloCache } from "apollo-cache"; import { NormalizedCacheObject } from "apollo-cache-inmemory"; -import { ICurrentUserRole } from "@/types/current-user.model"; +import { Resolvers } from "apollo-client/core/types"; -export default function buildCurrentUserResolver(cache: ApolloCache) { +export default function buildCurrentUserResolver( + cache: ApolloCache +): Resolvers { cache.writeData({ data: { currentUser: { diff --git a/js/src/components/Account/Identities.vue b/js/src/components/Account/Identities.vue index 81c08e66a..6dea19a45 100644 --- a/js/src/components/Account/Identities.vue +++ b/js/src/components/Account/Identities.vue @@ -53,7 +53,7 @@ export default class Identities extends Vue { errors: string[] = []; - isCurrentIdentity(identity: IPerson) { + isCurrentIdentity(identity: IPerson): boolean { return identity.preferredUsername === this.currentIdentityName; } } diff --git a/js/src/components/Account/ParticipantCard.vue b/js/src/components/Account/ParticipantCard.vue deleted file mode 100644 index 807e2f3a5..000000000 --- a/js/src/components/Account/ParticipantCard.vue +++ /dev/null @@ -1,94 +0,0 @@ - -```vue - -``` - -```vue - -``` - -```vue - -``` - -```vue - -``` - - - - - - diff --git a/js/src/components/Account/PopoverActorCard.vue b/js/src/components/Account/PopoverActorCard.vue index a61d08880..7374376c5 100644 --- a/js/src/components/Account/PopoverActorCard.vue +++ b/js/src/components/Account/PopoverActorCard.vue @@ -12,8 +12,9 @@ diff --git a/js/src/components/Group/GroupMemberCard.vue b/js/src/components/Group/GroupMemberCard.vue index f00689077..0b94eacdd 100644 --- a/js/src/components/Group/GroupMemberCard.vue +++ b/js/src/components/Group/GroupMemberCard.vue @@ -54,7 +54,9 @@ diff --git a/js/src/components/Map/Vue2LeafletLocateControl.vue b/js/src/components/Map/Vue2LeafletLocateControl.vue index 9a69db9f0..df2de381e 100644 --- a/js/src/components/Map/Vue2LeafletLocateControl.vue +++ b/js/src/components/Map/Vue2LeafletLocateControl.vue @@ -17,13 +17,13 @@ import { Component, Prop, Vue } from "vue-property-decorator"; @Component({ beforeDestroy() { - // eslint-disable-next-line @typescript-eslint/ban-ts-ignore + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore this.parentContainer.removeLayer(this); }, }) export default class Vue2LeafletLocateControl extends Vue { - @Prop({ type: Object, default: () => ({}) }) options!: object; + @Prop({ type: Object, default: () => ({}) }) options!: Record; @Prop({ type: Boolean, default: true }) visible = true; @@ -33,7 +33,7 @@ export default class Vue2LeafletLocateControl extends Vue { parentContainer: any; - mounted() { + mounted(): void { this.mapObject = L.control.locate(this.options); DomEvent.on(this.mapObject, this.$listeners as any); propsBinder(this, this.mapObject, this.$props); @@ -42,7 +42,7 @@ export default class Vue2LeafletLocateControl extends Vue { this.mapObject.addTo(this.parentContainer.mapObject, !this.visible); } - public locate() { + public locate(): void { this.mapObject.start(); } } diff --git a/js/src/components/NavBar.vue b/js/src/components/NavBar.vue index 5af8b3f00..6846f78eb 100644 --- a/js/src/components/NavBar.vue +++ b/js/src/components/NavBar.vue @@ -109,13 +109,14 @@ import { Component, Vue, Watch } from "vue-property-decorator"; import Logo from "@/components/Logo.vue"; import { GraphQLError } from "graphql"; import { loadLanguageAsync } from "@/utils/i18n"; +import { ICurrentUserRole } from "@/types/enums"; import { CURRENT_USER_CLIENT, USER_SETTINGS } from "../graphql/user"; import { changeIdentity, logout } from "../utils/auth"; import { CURRENT_ACTOR_CLIENT, IDENTITIES, UPDATE_DEFAULT_ACTOR } from "../graphql/actor"; import { IPerson, Person } from "../types/actor"; import { CONFIG } from "../graphql/config"; import { IConfig } from "../types/config.model"; -import { ICurrentUser, ICurrentUserRole, IUser } from "../types/current-user.model"; +import { ICurrentUser, IUser } from "../types/current-user.model"; import SearchField from "./SearchField.vue"; import RouteName from "../router/name"; diff --git a/js/src/components/Participation/ConfirmParticipation.vue b/js/src/components/Participation/ConfirmParticipation.vue index 8630e0362..a72c8d4d6 100644 --- a/js/src/components/Participation/ConfirmParticipation.vue +++ b/js/src/components/Participation/ConfirmParticipation.vue @@ -38,9 +38,9 @@ diff --git a/js/src/views/Moderation/Logs.vue b/js/src/views/Moderation/Logs.vue index c5369f9ec..b0cc89c6f 100644 --- a/js/src/views/Moderation/Logs.vue +++ b/js/src/views/Moderation/Logs.vue @@ -158,9 +158,10 @@