diff --git a/config/config.exs b/config/config.exs index a73bba6a1..52b949736 100644 --- a/config/config.exs +++ b/config/config.exs @@ -66,6 +66,7 @@ config :mobilizon, Mobilizon.Web.Upload, uploader: Mobilizon.Web.Upload.Uploader.Local, filters: [ Mobilizon.Web.Upload.Filter.Dedupe, + Mobilizon.Web.Upload.Filter.AnalyzeMetadata, Mobilizon.Web.Upload.Filter.Optimize ], allow_list_mime_types: ["image/gif", "image/jpeg", "image/png", "image/webp"], diff --git a/js/package.json b/js/package.json index fb05b29fc..13ad2a811 100644 --- a/js/package.json +++ b/js/package.json @@ -30,6 +30,7 @@ "@tiptap/starter-kit": "^2.0.0-beta.37", "@tiptap/vue-2": "^2.0.0-beta.21", "apollo-absinthe-upload-link": "^1.5.0", + "blurhash": "^1.1.3", "buefy": "^0.9.0", "bulma-divider": "^0.2.0", "core-js": "^3.6.4", diff --git a/js/src/apollo/utils.ts b/js/src/apollo/utils.ts index 7a190ac31..838ff718d 100644 --- a/js/src/apollo/utils.ts +++ b/js/src/apollo/utils.ts @@ -16,6 +16,7 @@ import { IMember } from "@/types/actor/member.model"; import { IComment } from "@/types/comment.model"; import { IEvent } from "@/types/event.model"; import { IActivity } from "@/types/activity.model"; +import uniqBy from "lodash/uniqBy"; type possibleTypes = { name: string }; type schemaType = { @@ -58,7 +59,7 @@ export const typePolicies: TypePolicies = { Event: { fields: { participants: paginatedLimitPagination(["roles"]), - commnents: pageLimitPagination(), + comments: pageLimitPagination(), relatedEvents: pageLimitPagination(), }, }, @@ -124,10 +125,6 @@ export function pageLimitPagination( // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore merge(existing, incoming, { args }) { - console.log("pageLimitPagination"); - console.log("existing", existing); - console.log("incoming", incoming); - // console.log("args", args); if (!incoming) return existing; if (!existing) return incoming; // existing will be empty the first time @@ -144,9 +141,6 @@ export function paginatedLimitPagination>( // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore merge(existing, incoming, { args }) { - console.log("paginatedLimitPagination"); - console.log("existing", existing); - console.log("incoming", incoming); if (!incoming) return existing; if (!existing) return incoming; // existing will be empty the first time @@ -168,7 +162,6 @@ function doMerge( if (args) { // Assume an page of 1 if args.page omitted. const { page = 1, limit = 10 } = args; - console.log("args, selected", { page, limit }); for (let i = 0; i < incoming.length; ++i) { merged[(page - 1) * limit + i] = incoming[i]; } @@ -179,7 +172,8 @@ function doMerge( // exception here, instead of recovering by appending incoming // onto the existing array. res = [...merged, ...incoming]; + // eslint-disable-next-line no-underscore-dangle + res = uniqBy(res, (elem: any) => elem.__ref); } - console.log("doMerge returns", res); return res; } diff --git a/js/src/common.scss b/js/src/common.scss index 2805f2cb8..e1a5012bd 100644 --- a/js/src/common.scss +++ b/js/src/common.scss @@ -64,14 +64,11 @@ $color-black: #000; } body { - // background: #f7f8fa; background: $body-background-color; font-family: BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, Cantarell, "Segoe UI", "Fira Sans", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - /*main {*/ - /* margin: 1rem auto 0;*/ - /*}*/ + overflow-x: hidden; } #mobilizon > .container > .message { diff --git a/js/src/components/Comment/Comment.vue b/js/src/components/Comment/Comment.vue index ea904c129..6a85c3358 100644 --- a/js/src/components/Comment/Comment.vue +++ b/js/src/components/Comment/Comment.vue @@ -1,10 +1,13 @@