mirror of
https://git.vectorsigma.ru/public/photoview.git
synced 2026-08-03 21:09:05 +00:00
Merge branch 'master' into improved-timeline
This commit is contained in:
129
ui/package-lock.json
generated
129
ui/package-lock.json
generated
@@ -840,6 +840,9 @@
|
||||
"integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.8.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-bigint": {
|
||||
@@ -945,6 +948,9 @@
|
||||
"integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.8.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-jsx": {
|
||||
@@ -967,6 +973,9 @@
|
||||
"integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.10.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
|
||||
@@ -975,6 +984,9 @@
|
||||
"integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.8.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-numeric-separator": {
|
||||
@@ -983,6 +995,9 @@
|
||||
"integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.10.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-object-rest-spread": {
|
||||
@@ -991,6 +1006,9 @@
|
||||
"integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.8.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-optional-catch-binding": {
|
||||
@@ -999,6 +1017,9 @@
|
||||
"integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.8.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-optional-chaining": {
|
||||
@@ -1007,6 +1028,9 @@
|
||||
"integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.8.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-private-property-in-object": {
|
||||
@@ -1750,6 +1774,9 @@
|
||||
"@babel/plugin-transform-dotall-regex": "^7.4.4",
|
||||
"@babel/types": "^7.4.4",
|
||||
"esutils": "^2.0.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/preset-react": {
|
||||
@@ -2030,7 +2057,10 @@
|
||||
"node_modules/@graphql-typed-document-node/core": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz",
|
||||
"integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg=="
|
||||
"integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==",
|
||||
"peerDependencies": {
|
||||
"graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@hapi/address": {
|
||||
"version": "2.1.4",
|
||||
@@ -2156,6 +2186,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@jest/types/node_modules/chalk": {
|
||||
@@ -2168,6 +2201,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/chalk?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@jest/types/node_modules/color-convert": {
|
||||
@@ -3874,6 +3910,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@testing-library/dom/node_modules/chalk": {
|
||||
@@ -3886,6 +3925,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/chalk?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@testing-library/dom/node_modules/color-convert": {
|
||||
@@ -3955,6 +3997,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@testing-library/jest-dom/node_modules/chalk": {
|
||||
@@ -5131,6 +5176,10 @@
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/epoberezkin"
|
||||
}
|
||||
},
|
||||
"node_modules/ajv-errors": {
|
||||
@@ -5171,6 +5220,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-escapes/node_modules/type-fest": {
|
||||
@@ -5179,6 +5231,9 @@
|
||||
"integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/ansi-html": {
|
||||
@@ -6245,6 +6300,7 @@
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
|
||||
"integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
|
||||
"deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.0.0",
|
||||
"@babel/parser": "^7.7.0",
|
||||
@@ -6255,6 +6311,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": ">= 4.12.1"
|
||||
}
|
||||
},
|
||||
"node_modules/babel-extract-comments": {
|
||||
@@ -10390,6 +10449,9 @@
|
||||
"integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-plugin-react/node_modules/doctrine": {
|
||||
@@ -10541,6 +10603,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/mysticatea"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint-visitor-keys": {
|
||||
@@ -10633,6 +10698,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint/node_modules/chalk": {
|
||||
@@ -10645,6 +10713,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/chalk?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint/node_modules/color-convert": {
|
||||
@@ -11517,7 +11588,8 @@
|
||||
"node_modules/flatten": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz",
|
||||
"integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg=="
|
||||
"integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==",
|
||||
"deprecated": "flatten is deprecated in favor of utility frameworks such as lodash."
|
||||
},
|
||||
"node_modules/flush-write-stream": {
|
||||
"version": "1.1.1",
|
||||
@@ -11869,6 +11941,7 @@
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
@@ -12046,6 +12119,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/glob-parent": {
|
||||
@@ -12989,7 +13065,6 @@
|
||||
"resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz",
|
||||
"integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"husky": "lib/bin.js"
|
||||
},
|
||||
@@ -14005,6 +14080,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/jest-diff/node_modules/chalk": {
|
||||
@@ -14017,6 +14095,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/chalk?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/jest-diff/node_modules/color-convert": {
|
||||
@@ -16046,6 +16127,10 @@
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.5.5",
|
||||
"tiny-warning": "^1.0.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"prop-types": "^15.0.0",
|
||||
"react": "^0.14.0 || ^15.0.0 || ^16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/mini-css-extract-plugin": {
|
||||
@@ -17028,6 +17113,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/p-locate": {
|
||||
@@ -19029,6 +19117,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/pretty-format/node_modules/color-convert": {
|
||||
@@ -19610,6 +19701,9 @@
|
||||
"prop-types": "^15.7.2",
|
||||
"react-fast-compare": "^3.1.1",
|
||||
"react-side-effect": "^2.1.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-hook-form": {
|
||||
@@ -19657,6 +19751,9 @@
|
||||
"react-is": "^16.6.0",
|
||||
"tiny-invariant": "^1.0.2",
|
||||
"tiny-warning": "^1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=15"
|
||||
}
|
||||
},
|
||||
"node_modules/react-router-dom": {
|
||||
@@ -19671,6 +19768,9 @@
|
||||
"react-router": "5.2.0",
|
||||
"tiny-invariant": "^1.0.2",
|
||||
"tiny-warning": "^1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=15"
|
||||
}
|
||||
},
|
||||
"node_modules/react-router-dom/node_modules/history": {
|
||||
@@ -21167,12 +21267,18 @@
|
||||
"dependencies": {
|
||||
"object-assign": "^4.1.1",
|
||||
"react-is": "^16.12.0 || ^17.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^16.0.0 || ^17.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-side-effect": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz",
|
||||
"integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg=="
|
||||
"integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg==",
|
||||
"peerDependencies": {
|
||||
"react": "^16.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-spring": {
|
||||
"version": "8.0.27",
|
||||
@@ -21492,6 +21598,9 @@
|
||||
"integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/mysticatea"
|
||||
}
|
||||
},
|
||||
"node_modules/regexpu-core": {
|
||||
@@ -27150,6 +27259,9 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/wrap-ansi/node_modules/color-convert": {
|
||||
@@ -28646,7 +28758,8 @@
|
||||
"@graphql-typed-document-node/core": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz",
|
||||
"integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg=="
|
||||
"integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==",
|
||||
"requires": {}
|
||||
},
|
||||
"@hapi/address": {
|
||||
"version": "2.1.4",
|
||||
@@ -35376,7 +35489,8 @@
|
||||
"eslint-plugin-react-hooks": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz",
|
||||
"integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ=="
|
||||
"integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==",
|
||||
"requires": {}
|
||||
},
|
||||
"eslint-plugin-testing-library": {
|
||||
"version": "3.10.2",
|
||||
@@ -43696,7 +43810,8 @@
|
||||
"react-side-effect": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz",
|
||||
"integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg=="
|
||||
"integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg==",
|
||||
"requires": {}
|
||||
},
|
||||
"react-spring": {
|
||||
"version": "8.0.27",
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
"@testing-library/jest-dom": "^5.14.1",
|
||||
"@testing-library/react": "^12.0.0",
|
||||
"@testing-library/user-event": "^13.1.9",
|
||||
"apollo": "^2.33.4",
|
||||
"husky": "^6.0.0",
|
||||
"i18next-parser": "^4.2.0",
|
||||
"lint-staged": "^11.0.1",
|
||||
|
||||
@@ -25,6 +25,7 @@ const ALBUM_QUERY = gql`
|
||||
id
|
||||
title
|
||||
thumbnail {
|
||||
id
|
||||
thumbnail {
|
||||
url
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ export interface albumQuery_album_subAlbums_thumbnail_thumbnail {
|
||||
|
||||
export interface albumQuery_album_subAlbums_thumbnail {
|
||||
__typename: "Media";
|
||||
id: string;
|
||||
/**
|
||||
* URL to display the media in a smaller resolution
|
||||
*/
|
||||
|
||||
@@ -10,6 +10,7 @@ const getAlbumsQuery = gql`
|
||||
id
|
||||
title
|
||||
thumbnail {
|
||||
id
|
||||
thumbnail {
|
||||
url
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ export interface getMyAlbums_myAlbums_thumbnail_thumbnail {
|
||||
|
||||
export interface getMyAlbums_myAlbums_thumbnail {
|
||||
__typename: "Media";
|
||||
id: string;
|
||||
/**
|
||||
* URL to display the media in a smaller resolution
|
||||
*/
|
||||
|
||||
@@ -27,6 +27,7 @@ export const SHARE_ALBUM_QUERY = gql`
|
||||
id
|
||||
title
|
||||
thumbnail {
|
||||
id
|
||||
thumbnail {
|
||||
url
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ export interface shareAlbumQuery_album_subAlbums_thumbnail_thumbnail {
|
||||
|
||||
export interface shareAlbumQuery_album_subAlbums_thumbnail {
|
||||
__typename: "Media";
|
||||
id: string;
|
||||
/**
|
||||
* URL to display the media in a smaller resolution
|
||||
*/
|
||||
|
||||
155
ui/src/components/sidebar/AlbumCovers.tsx
Normal file
155
ui/src/components/sidebar/AlbumCovers.tsx
Normal file
@@ -0,0 +1,155 @@
|
||||
import React, { useState, useEffect } from 'react'
|
||||
import { useMutation, gql } from '@apollo/client'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
import { SidebarSection, SidebarSectionTitle } from './SidebarComponents'
|
||||
|
||||
import {
|
||||
setAlbumCover,
|
||||
setAlbumCoverVariables,
|
||||
} from './__generated__/setAlbumCover'
|
||||
import {
|
||||
resetAlbumCover,
|
||||
resetAlbumCoverVariables,
|
||||
} from './__generated__/resetAlbumCover'
|
||||
|
||||
const RESET_ALBUM_COVER_MUTATION = gql`
|
||||
mutation resetAlbumCover($albumID: ID!) {
|
||||
resetAlbumCover(albumID: $albumID) {
|
||||
id
|
||||
thumbnail {
|
||||
id
|
||||
thumbnail {
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
const SET_ALBUM_COVER_MUTATION = gql`
|
||||
mutation setAlbumCover($coverID: ID!) {
|
||||
setAlbumCover(coverID: $coverID) {
|
||||
id
|
||||
thumbnail {
|
||||
id
|
||||
thumbnail {
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
type SidebarPhotoCoverProps = {
|
||||
cover_id: string
|
||||
}
|
||||
|
||||
export const SidebarPhotoCover = ({ cover_id }: SidebarPhotoCoverProps) => {
|
||||
const { t } = useTranslation()
|
||||
|
||||
const [setAlbumCover] = useMutation<setAlbumCover, setAlbumCoverVariables>(
|
||||
SET_ALBUM_COVER_MUTATION,
|
||||
{
|
||||
variables: {
|
||||
coverID: cover_id,
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
const [buttonDisabled, setButtonDisabled] = useState(false)
|
||||
|
||||
useEffect(() => {
|
||||
setButtonDisabled(false)
|
||||
}, [cover_id])
|
||||
|
||||
return (
|
||||
<SidebarSection>
|
||||
<SidebarSectionTitle>
|
||||
{t('sidebar.album.cover_photo', 'Album cover')}
|
||||
</SidebarSectionTitle>
|
||||
<div>
|
||||
<table className="border-collapse w-full">
|
||||
<tfoot>
|
||||
<tr className="text-left border-gray-100 border-b border-t">
|
||||
<td colSpan={2} className="pl-4 py-2">
|
||||
<button
|
||||
className="disabled:opacity-50 text-green-500 font-bold uppercase text-xs"
|
||||
disabled={buttonDisabled}
|
||||
onClick={() => {
|
||||
setButtonDisabled(true),
|
||||
setAlbumCover({
|
||||
variables: {
|
||||
coverID: cover_id,
|
||||
},
|
||||
})
|
||||
}}
|
||||
>
|
||||
<span>
|
||||
{t('sidebar.album.set_cover', 'Set as album cover photo')}
|
||||
</span>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</SidebarSection>
|
||||
)
|
||||
}
|
||||
|
||||
type SidebarAlbumCoverProps = {
|
||||
id: string
|
||||
}
|
||||
|
||||
export const SidebarAlbumCover = ({ id }: SidebarAlbumCoverProps) => {
|
||||
const { t } = useTranslation()
|
||||
|
||||
const [resetAlbumCover] = useMutation<
|
||||
resetAlbumCover,
|
||||
resetAlbumCoverVariables
|
||||
>(RESET_ALBUM_COVER_MUTATION, {
|
||||
variables: {
|
||||
albumID: id,
|
||||
},
|
||||
})
|
||||
|
||||
const [buttonDisabled, setButtonDisabled] = useState(false)
|
||||
|
||||
useEffect(() => {
|
||||
setButtonDisabled(false)
|
||||
}, [id])
|
||||
|
||||
return (
|
||||
<SidebarSection>
|
||||
<SidebarSectionTitle>
|
||||
{t('sidebar.album.album_cover', 'Album cover')}
|
||||
</SidebarSectionTitle>
|
||||
<div>
|
||||
<table className="border-collapse w-full">
|
||||
<tfoot>
|
||||
<tr className="text-left border-gray-100 border-b border-t">
|
||||
<td colSpan={2} className="pl-4 py-2">
|
||||
<button
|
||||
className="disabled:opacity-50 text-red-500 font-bold uppercase text-xs"
|
||||
disabled={buttonDisabled}
|
||||
onClick={() => {
|
||||
setButtonDisabled(true),
|
||||
resetAlbumCover({
|
||||
variables: {
|
||||
albumID: id,
|
||||
},
|
||||
})
|
||||
}}
|
||||
>
|
||||
<span>
|
||||
{t('sidebar.album.reset_cover', 'Reset cover photo')}
|
||||
</span>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</SidebarSection>
|
||||
)
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
getAlbumSidebar,
|
||||
getAlbumSidebarVariables,
|
||||
} from './__generated__/getAlbumSidebar'
|
||||
import { SidebarAlbumCover } from './AlbumCovers'
|
||||
|
||||
const albumQuery = gql`
|
||||
query getAlbumSidebar($id: ID!) {
|
||||
@@ -46,6 +47,9 @@ const AlbumSidebar = ({ albumId }: AlbumSidebarProps) => {
|
||||
{/* <h1 className="text-3xl font-semibold">{data.album.title}</h1> */}
|
||||
<SidebarAlbumShare id={albumId} />
|
||||
</div>
|
||||
<div className="mt-8">
|
||||
<SidebarAlbumCover id={albumId} />
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ import {
|
||||
|
||||
import { sidebarDownloadQuery_media_downloads } from './__generated__/sidebarDownloadQuery'
|
||||
import SidebarHeader from './SidebarHeader'
|
||||
import { SidebarPhotoCover } from './AlbumCovers'
|
||||
|
||||
const SIDEBAR_MEDIA_QUERY = gql`
|
||||
query sidebarPhoto($id: ID!) {
|
||||
@@ -365,6 +366,9 @@ const SidebarContent = ({ media, hidePreview }: SidebarContentProps) => {
|
||||
<MetadataInfo media={media} />
|
||||
<SidebarDownload media={media} />
|
||||
<SidebarPhotoShare id={media.id} />
|
||||
<div className="mt-8">
|
||||
<SidebarPhotoCover cover_id={media.id} />
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -312,10 +312,9 @@ export const SidebarPhotoShare = ({ id }: SidebarSharePhotoProps) => {
|
||||
const [
|
||||
loadShares,
|
||||
{ loading: queryLoading, error: sharesError, data: sharesData },
|
||||
] =
|
||||
useLazyQuery<sidebarGetPhotoShares, sidebarGetPhotoSharesVariables>(
|
||||
SHARE_PHOTO_QUERY
|
||||
)
|
||||
] = useLazyQuery<sidebarGetPhotoShares, sidebarGetPhotoSharesVariables>(
|
||||
SHARE_PHOTO_QUERY
|
||||
)
|
||||
|
||||
const [sharePhoto, { loading: mutationLoading }] = useMutation<
|
||||
sidebarPhotoAddShare,
|
||||
|
||||
45
ui/src/components/sidebar/__generated__/resetAlbumCover.ts
generated
Normal file
45
ui/src/components/sidebar/__generated__/resetAlbumCover.ts
generated
Normal file
@@ -0,0 +1,45 @@
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
// ====================================================
|
||||
// GraphQL mutation operation: resetAlbumCover
|
||||
// ====================================================
|
||||
|
||||
export interface resetAlbumCover_resetAlbumCover_thumbnail_thumbnail {
|
||||
__typename: "MediaURL";
|
||||
/**
|
||||
* URL for previewing the image
|
||||
*/
|
||||
url: string;
|
||||
}
|
||||
|
||||
export interface resetAlbumCover_resetAlbumCover_thumbnail {
|
||||
__typename: "Media";
|
||||
id: string;
|
||||
/**
|
||||
* URL to display the media in a smaller resolution
|
||||
*/
|
||||
thumbnail: resetAlbumCover_resetAlbumCover_thumbnail_thumbnail | null;
|
||||
}
|
||||
|
||||
export interface resetAlbumCover_resetAlbumCover {
|
||||
__typename: "Album";
|
||||
id: string;
|
||||
/**
|
||||
* An image in this album used for previewing this album
|
||||
*/
|
||||
thumbnail: resetAlbumCover_resetAlbumCover_thumbnail | null;
|
||||
}
|
||||
|
||||
export interface resetAlbumCover {
|
||||
/**
|
||||
* Reset the assigned cover photo for an album
|
||||
*/
|
||||
resetAlbumCover: resetAlbumCover_resetAlbumCover;
|
||||
}
|
||||
|
||||
export interface resetAlbumCoverVariables {
|
||||
albumID: string;
|
||||
}
|
||||
45
ui/src/components/sidebar/__generated__/setAlbumCover.ts
generated
Normal file
45
ui/src/components/sidebar/__generated__/setAlbumCover.ts
generated
Normal file
@@ -0,0 +1,45 @@
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
// ====================================================
|
||||
// GraphQL mutation operation: setAlbumCover
|
||||
// ====================================================
|
||||
|
||||
export interface setAlbumCover_setAlbumCover_thumbnail_thumbnail {
|
||||
__typename: "MediaURL";
|
||||
/**
|
||||
* URL for previewing the image
|
||||
*/
|
||||
url: string;
|
||||
}
|
||||
|
||||
export interface setAlbumCover_setAlbumCover_thumbnail {
|
||||
__typename: "Media";
|
||||
id: string;
|
||||
/**
|
||||
* URL to display the media in a smaller resolution
|
||||
*/
|
||||
thumbnail: setAlbumCover_setAlbumCover_thumbnail_thumbnail | null;
|
||||
}
|
||||
|
||||
export interface setAlbumCover_setAlbumCover {
|
||||
__typename: "Album";
|
||||
id: string;
|
||||
/**
|
||||
* An image in this album used for previewing this album
|
||||
*/
|
||||
thumbnail: setAlbumCover_setAlbumCover_thumbnail | null;
|
||||
}
|
||||
|
||||
export interface setAlbumCover {
|
||||
/**
|
||||
* Assign a cover photo to an album
|
||||
*/
|
||||
setAlbumCover: setAlbumCover_setAlbumCover;
|
||||
}
|
||||
|
||||
export interface setAlbumCoverVariables {
|
||||
coverID: string;
|
||||
}
|
||||
26
ui/src/components/sidebar/__generated__/setAlbumCoverID.ts
generated
Normal file
26
ui/src/components/sidebar/__generated__/setAlbumCoverID.ts
generated
Normal file
@@ -0,0 +1,26 @@
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
// @generated
|
||||
// This file was automatically generated and should not be edited.
|
||||
|
||||
// ====================================================
|
||||
// GraphQL mutation operation: setAlbumCoverID
|
||||
// ====================================================
|
||||
|
||||
export interface setAlbumCoverID_setAlbumCoverID {
|
||||
__typename: 'Album'
|
||||
id: string
|
||||
coverID: string
|
||||
}
|
||||
|
||||
export interface setAlbumCoverID {
|
||||
/**
|
||||
* Assign a cover image to an album, set coverID to -1 to remove the current one
|
||||
*/
|
||||
setAlbumCoverID: setAlbumCoverID_setAlbumCoverID
|
||||
}
|
||||
|
||||
export interface setAlbumCoverIDVariables {
|
||||
albumID: string
|
||||
coverID: string
|
||||
}
|
||||
Reference in New Issue
Block a user