Merge remote-tracking branch 'hub/dev' into feature/auth-resend
This commit is contained in:
commit
912e40f9b1
244
package-lock.json
generated
244
package-lock.json
generated
|
@ -46,35 +46,35 @@
|
||||||
"@solid-primitives/upload": "0.0.110",
|
"@solid-primitives/upload": "0.0.110",
|
||||||
"@solidjs/meta": "0.29.1",
|
"@solidjs/meta": "0.29.1",
|
||||||
"@thisbeyond/solid-select": "0.14.0",
|
"@thisbeyond/solid-select": "0.14.0",
|
||||||
"@tiptap/core": "2.0.3",
|
"@tiptap/core": "2.2.2",
|
||||||
"@tiptap/extension-blockquote": "2.0.3",
|
"@tiptap/extension-blockquote": "2.2.2",
|
||||||
"@tiptap/extension-bold": "2.0.3",
|
"@tiptap/extension-bold": "2.2.2",
|
||||||
"@tiptap/extension-bubble-menu": "2.0.3",
|
"@tiptap/extension-bubble-menu": "2.2.2",
|
||||||
"@tiptap/extension-bullet-list": "2.0.3",
|
"@tiptap/extension-bullet-list": "2.2.2",
|
||||||
"@tiptap/extension-character-count": "2.0.3",
|
"@tiptap/extension-character-count": "2.2.2",
|
||||||
"@tiptap/extension-collaboration": "2.0.3",
|
"@tiptap/extension-collaboration": "2.2.2",
|
||||||
"@tiptap/extension-collaboration-cursor": "2.0.3",
|
"@tiptap/extension-collaboration-cursor": "2.2.2",
|
||||||
"@tiptap/extension-document": "2.0.3",
|
"@tiptap/extension-document": "2.2.2",
|
||||||
"@tiptap/extension-dropcursor": "2.0.3",
|
"@tiptap/extension-dropcursor": "2.2.2",
|
||||||
"@tiptap/extension-floating-menu": "2.0.3",
|
"@tiptap/extension-floating-menu": "2.2.2",
|
||||||
"@tiptap/extension-focus": "2.0.3",
|
"@tiptap/extension-focus": "2.2.2",
|
||||||
"@tiptap/extension-gapcursor": "2.0.3",
|
"@tiptap/extension-gapcursor": "2.2.2",
|
||||||
"@tiptap/extension-hard-break": "2.0.3",
|
"@tiptap/extension-hard-break": "2.2.2",
|
||||||
"@tiptap/extension-heading": "2.0.3",
|
"@tiptap/extension-heading": "2.2.2",
|
||||||
"@tiptap/extension-highlight": "2.0.3",
|
"@tiptap/extension-highlight": "2.2.2",
|
||||||
"@tiptap/extension-history": "2.0.3",
|
"@tiptap/extension-history": "2.2.2",
|
||||||
"@tiptap/extension-horizontal-rule": "2.0.3",
|
"@tiptap/extension-horizontal-rule": "2.2.2",
|
||||||
"@tiptap/extension-image": "2.0.3",
|
"@tiptap/extension-image": "2.2.2",
|
||||||
"@tiptap/extension-italic": "2.0.3",
|
"@tiptap/extension-italic": "2.2.2",
|
||||||
"@tiptap/extension-link": "2.0.3",
|
"@tiptap/extension-link": "2.2.2",
|
||||||
"@tiptap/extension-list-item": "2.0.3",
|
"@tiptap/extension-list-item": "2.2.2",
|
||||||
"@tiptap/extension-ordered-list": "2.0.3",
|
"@tiptap/extension-ordered-list": "2.2.2",
|
||||||
"@tiptap/extension-paragraph": "2.0.3",
|
"@tiptap/extension-paragraph": "2.2.2",
|
||||||
"@tiptap/extension-placeholder": "2.0.3",
|
"@tiptap/extension-placeholder": "2.2.2",
|
||||||
"@tiptap/extension-strike": "2.0.3",
|
"@tiptap/extension-strike": "2.2.2",
|
||||||
"@tiptap/extension-text": "2.0.3",
|
"@tiptap/extension-text": "2.2.2",
|
||||||
"@tiptap/extension-underline": "2.0.3",
|
"@tiptap/extension-underline": "2.2.2",
|
||||||
"@tiptap/extension-youtube": "2.0.3",
|
"@tiptap/extension-youtube": "2.2.2",
|
||||||
"@types/js-cookie": "3.0.6",
|
"@types/js-cookie": "3.0.6",
|
||||||
"@types/node": "20.9.0",
|
"@types/node": "20.9.0",
|
||||||
"@urql/core": "4.2.3",
|
"@urql/core": "4.2.3",
|
||||||
|
@ -104,7 +104,7 @@
|
||||||
"sass": "1.69.5",
|
"sass": "1.69.5",
|
||||||
"solid-js": "1.8.7",
|
"solid-js": "1.8.7",
|
||||||
"solid-popper": "0.3.0",
|
"solid-popper": "0.3.0",
|
||||||
"solid-tiptap": "0.6.0",
|
"solid-tiptap": "0.7.0",
|
||||||
"solid-transition-group": "0.2.3",
|
"solid-transition-group": "0.2.3",
|
||||||
"sort-json": "2.0.1",
|
"sort-json": "2.0.1",
|
||||||
"sort-package-json": "2.6.0",
|
"sort-package-json": "2.6.0",
|
||||||
|
@ -4615,9 +4615,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/core": {
|
"node_modules/@tiptap/core": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.2.2.tgz",
|
||||||
"integrity": "sha512-jLyVIWAdjjlNzrsRhSE2lVL/7N8228/1R1QtaVU85UlMIwHFAcdzhD8FeiKkqxpTnGpaDVaTy7VNEtEgaYdCyA==",
|
"integrity": "sha512-fec26LtNgYFGhKzEA9+Of+qLKIKUxDL/XZQofoPcxP71NffcmpZ+ZjAx9NjnvuYtvylUSySZiPauY6WhN3aprw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4628,9 +4628,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-blockquote": {
|
"node_modules/@tiptap/extension-blockquote": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.2.2.tgz",
|
||||||
"integrity": "sha512-rkUcFv2iL6f86DBBHoa4XdKNG2StvkJ7tfY9GoMpT46k3nxOaMTqak9/qZOo79TWxMLYtXzoxtKIkmWsbbcj4A==",
|
"integrity": "sha512-ENCGx/yhNdUQ0epGOeTN4HFeUSfQDK2CQBy2szkQVtzG/Vhv8ExxBWTxHJcMoeSfEVmKag4B506vfRkKH24IMA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4641,9 +4641,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-bold": {
|
"node_modules/@tiptap/extension-bold": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.2.2.tgz",
|
||||||
"integrity": "sha512-OGT62fMRovSSayjehumygFWTg2Qn0IDbqyMpigg/RUAsnoOI2yBZFVrdM2gk1StyoSay7gTn2MLw97IUfr7FXg==",
|
"integrity": "sha512-8/KLpPHwO+GXlWsXEION7ppLfFIaSpnw5m2QYXz/LGRK32hzpTavbdXV3rx9+Vu+7Z+0yQF9G/ro1z9dqTQHpw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4654,9 +4654,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-bubble-menu": {
|
"node_modules/@tiptap/extension-bubble-menu": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.2.2.tgz",
|
||||||
"integrity": "sha512-lPt1ELrYCuoQrQEUukqjp9xt38EwgPUwaKHI3wwt2Rbv+C6q1gmRsK1yeO/KqCNmFxNqF2p9ZF9srOnug/RZDQ==",
|
"integrity": "sha512-W3OvoHxgBdQSrlX8FXvIs5wA+eHXe/0jGsqQdwLXPtqZOSR4Ks9OLmxDk2+O8ci0KCLPb6/doJYg7j/8Ic4KRg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tippy.js": "^6.3.7"
|
"tippy.js": "^6.3.7"
|
||||||
|
@ -4671,9 +4671,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-bullet-list": {
|
"node_modules/@tiptap/extension-bullet-list": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.2.2.tgz",
|
||||||
"integrity": "sha512-RtaLiRvZbMTOje+FW5bn+mYogiIgNxOm065wmyLPypnTbLSeHeYkoqVSqzZeqUn+7GLnwgn1shirUe6csVE/BA==",
|
"integrity": "sha512-mZznxwymWitQRHYxEN8LX7theJdQ1/O6kUsvwDyHw42+jaCsZumTHEWGckBwkxk3BWWKbrkRGv/cC78sa3cNJw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4684,9 +4684,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-character-count": {
|
"node_modules/@tiptap/extension-character-count": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-character-count/-/extension-character-count-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-character-count/-/extension-character-count-2.2.2.tgz",
|
||||||
"integrity": "sha512-Ge4aUmgYOmQR/HLPkbQSFKEywyRu6IalHAQmH3laY6LB9qrmT90AoaiFnaVCDpphYFQ7RygnBXJMgjtJ3WpZmw==",
|
"integrity": "sha512-aObDoKXxVEi3sLaJFfaFLtKMH6e3zgKCkPhXOROUsrdapmvn/ubTuEXdVjiV9YZ7U6t57IYjlXV/jiVwDSgIjA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4698,9 +4698,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-collaboration": {
|
"node_modules/@tiptap/extension-collaboration": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-collaboration/-/extension-collaboration-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-collaboration/-/extension-collaboration-2.2.2.tgz",
|
||||||
"integrity": "sha512-oA+5Dx+L1GfFrP2tUol8lfKNrLitYgHBaBJbAiqh/QPKVuUiEWgFS2W1oYaSGmwYjzdPCVJqXyQLzSJvEdnBWQ==",
|
"integrity": "sha512-tbElPmwAFIbsE/2hF9TaZJPjc37X8HKmbDES/KB9gdf6g/RL1MQiDOeO0j/8szbIUBiBHnh8jejl2Pd9D8lz+A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4709,13 +4709,13 @@
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@tiptap/core": "^2.0.0",
|
"@tiptap/core": "^2.0.0",
|
||||||
"@tiptap/pm": "^2.0.0",
|
"@tiptap/pm": "^2.0.0",
|
||||||
"y-prosemirror": "1.0.20"
|
"y-prosemirror": "^1.2.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-collaboration-cursor": {
|
"node_modules/@tiptap/extension-collaboration-cursor": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-collaboration-cursor/-/extension-collaboration-cursor-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-collaboration-cursor/-/extension-collaboration-cursor-2.2.2.tgz",
|
||||||
"integrity": "sha512-pBcsk3ZkK8IQK6UP/a7Y4rjZRW/anhxFaTCcTxrUvn/azqRI+mcCsRwbc5lNLzcYq5JVOHGROjriNmGGkIr5jA==",
|
"integrity": "sha512-98h1N5oP3E0jGOFLUa2e1gmrgRxlvHh2qULVkvvQo5et9tjPlKu7eCatCbFNnR5+jRoQSN1t77GZ9GcfIETVVw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4723,13 +4723,13 @@
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@tiptap/core": "^2.0.0",
|
"@tiptap/core": "^2.0.0",
|
||||||
"y-prosemirror": "1.0.20"
|
"y-prosemirror": "^1.2.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-document": {
|
"node_modules/@tiptap/extension-document": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.2.2.tgz",
|
||||||
"integrity": "sha512-PsYeNQQBYIU9ayz1R11Kv/kKNPFNIV8tApJ9pxelXjzcAhkjncNUazPN/dyho60mzo+WpsmS3ceTj/gK3bCtWA==",
|
"integrity": "sha512-eUhpYq8ErVAlxuTg5wslc96mniEQs+VN+tFmRrx9Q0n0nG/aDKUQFDgcSMpAMpHK7+h7tGc/rDq+ydpzZhFXlQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4740,9 +4740,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-dropcursor": {
|
"node_modules/@tiptap/extension-dropcursor": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.2.2.tgz",
|
||||||
"integrity": "sha512-McthMrfusn6PjcaynJLheZJcXto8TaIW5iVitYh8qQrDXr31MALC/5GvWuiswmQ8bAXiWPwlLDYE/OJfwtggaw==",
|
"integrity": "sha512-HxXEf6m+W3PnT63Ib49qAmcwmapZvmyWgq9cvB5kSfl/znQT04wBgShEigkgUBLqgcM/R/RI8NS1GQl1Zpv9iQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4754,9 +4754,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-floating-menu": {
|
"node_modules/@tiptap/extension-floating-menu": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.2.2.tgz",
|
||||||
"integrity": "sha512-zN1vRGRvyK3pO2aHRmQSOTpl4UJraXYwKYM009n6WviYKUNm0LPGo+VD4OAtdzUhPXyccnlsTv2p6LIqFty6Bg==",
|
"integrity": "sha512-DRz9kzcPt7S8s22EQC+KS/ghnHRV6j7Qequ+0kLjfLYPdqj2u4G5xTrFM7sWfzUqf2HdH8SS8Yo9WFMYm69D9w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tippy.js": "^6.3.7"
|
"tippy.js": "^6.3.7"
|
||||||
|
@ -4771,9 +4771,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-focus": {
|
"node_modules/@tiptap/extension-focus": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-focus/-/extension-focus-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-focus/-/extension-focus-2.2.2.tgz",
|
||||||
"integrity": "sha512-WTJEmbGyHK8F/v1k5/5viLAa7PqtNoWOO4Qt4PBoUPlFDW97QMEh5m8Cvqw/RtbxTiGDHz6T+I5IJsKXGJed/A==",
|
"integrity": "sha512-AAkFu4bdqOU/fnYs6sI2UfNxBEwkWAFfqUlwe6UYj5a0tQCcAXdP64JECEVRQPH91IY562jvs6MNHKPZpnfLQQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4785,9 +4785,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-gapcursor": {
|
"node_modules/@tiptap/extension-gapcursor": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.2.2.tgz",
|
||||||
"integrity": "sha512-6I9EzzsYOyyqDvDvxIK6Rv3EXB+fHKFj8ntHO8IXmeNJ6pkhOinuXVsW6Yo7TcDYoTj4D5I2MNFAW2rIkgassw==",
|
"integrity": "sha512-qsE8yI9nZOLHg6XdFwn4BYMhR2f/50gppHJdsHx53575y2ci6uowMI+WjdEentl6yR9ctgV1jelHLs9ShmPzwQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4799,9 +4799,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-hard-break": {
|
"node_modules/@tiptap/extension-hard-break": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.2.2.tgz",
|
||||||
"integrity": "sha512-RCln6ARn16jvKTjhkcAD5KzYXYS0xRMc0/LrHeV8TKdCd4Yd0YYHe0PU4F9gAgAfPQn7Dgt4uTVJLN11ICl8sQ==",
|
"integrity": "sha512-zbG6/7xyMim2fnRESIx2FiFHjdY7BXKMe+GUgLGPnRfXrJqSZhdVguBrtYGBnBFCnuSiOZZ6rFy+k5uORGSrhA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4812,9 +4812,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-heading": {
|
"node_modules/@tiptap/extension-heading": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.2.2.tgz",
|
||||||
"integrity": "sha512-f0IEv5ms6aCzL80WeZ1qLCXTkRVwbpRr1qAETjg3gG4eoJN18+lZNOJYpyZy3P92C5KwF2T3Av00eFyVLIbb8Q==",
|
"integrity": "sha512-oCd8VsLnrqJFY+lgA+5I/2EjBa4mQzB5DFLzCI460PfZnQJ2DmaNUdpY38BpHUv8E2PbBXzxxWS9h88yycW6yw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4825,9 +4825,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-highlight": {
|
"node_modules/@tiptap/extension-highlight": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.2.2.tgz",
|
||||||
"integrity": "sha512-NrtibY8cZkIjZMQuHRrKd4php+plOvAoSo8g3uVFu275I/Ixt5HqJ53R4voCXs8W8BOBRs2HS2QX8Cjh79XhtA==",
|
"integrity": "sha512-tNDx0u54H/cnBVfGflq7a9WHzPTOdDgz0BzSj3ujHT8xAZG+yQWhm8bnq0BZc+7xODbGIQ22ZEzypIC7KNUzZQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4838,9 +4838,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-history": {
|
"node_modules/@tiptap/extension-history": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.2.2.tgz",
|
||||||
"integrity": "sha512-00KHIcJ8kivn2ARI6NQYphv2LfllVCXViHGm0EhzDW6NQxCrriJKE3tKDcTFCu7LlC5doMpq9Z6KXdljc4oVeQ==",
|
"integrity": "sha512-hcCEh7mP5H38ZY3YtbyyUOTNfKWAvITkJhVqjKbrRI3E+FOlG3pWPH3wz4srW5bHK38oUsiKwyP9FqC3C2Mixg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4852,9 +4852,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-horizontal-rule": {
|
"node_modules/@tiptap/extension-horizontal-rule": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.2.2.tgz",
|
||||||
"integrity": "sha512-SZRUSh07b/M0kJHNKnfBwBMWrZBEm/E2LrK1NbluwT3DBhE+gvwiEdBxgB32zKHNxaDEXUJwUIPNC3JSbKvPUA==",
|
"integrity": "sha512-5hun56M9elO6slOoDH03q2of06KB1rX8MLvfiKpfAvjbhmuQJav20fz2MQ2lCunek0D8mUIySwhfMvBrTcd90A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4866,9 +4866,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-image": {
|
"node_modules/@tiptap/extension-image": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.2.2.tgz",
|
||||||
"integrity": "sha512-hS9ZJwz0md07EHsC+o4NuuJkhCZsZn7TuRz/2CvRSj2fWFIz+40CyNAHf/2J0qNugG9ommXaemetsADeEZP9ag==",
|
"integrity": "sha512-fqZ2VB3K/c/Mi/2QTfav6CmTe33yGRkeQEivllSCCxgDD+kNYGto/P9maHSIJSG3RZWZHYfIPHmUJKfUlJRTXQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4879,9 +4879,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-italic": {
|
"node_modules/@tiptap/extension-italic": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.2.2.tgz",
|
||||||
"integrity": "sha512-cfS5sW0gu7qf4ihwnLtW/QMTBrBEXaT0sJl3RwkhjIBg/65ywJKE5Nz9ewnQHmDeT18hvMJJ1VIb4j4ze9jj9A==",
|
"integrity": "sha512-l9NZK4vYqYY9Y5UskLQpdbvi0sXG4I/MuhRxPdjitK8E3SVhZxMnoNwCTkq0+I1xBjCD/jSrDMV4FqkKesrl2w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4892,9 +4892,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-link": {
|
"node_modules/@tiptap/extension-link": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.2.2.tgz",
|
||||||
"integrity": "sha512-H72tXQ5rkVCkAhFaf08fbEU7EBUCK0uocsqOF+4th9sOlrhfgyJtc8Jv5EXPDpxNgG5jixSqWBo0zKXQm9s9eg==",
|
"integrity": "sha512-hk2cxSWeFagv2erxVI4UUN9kTLqhTSLhtHKVNbKOW50dtkDqjzp9tri1+LYYpiObxDKoFFKfKjE6ojVtqMyn2w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"linkifyjs": "^4.1.0"
|
"linkifyjs": "^4.1.0"
|
||||||
|
@ -4909,9 +4909,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-list-item": {
|
"node_modules/@tiptap/extension-list-item": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.2.2.tgz",
|
||||||
"integrity": "sha512-p7cUsk0LpM1PfdAuFE8wYBNJ3gvA0UhNGR08Lo++rt9UaCeFLSN1SXRxg97c0oa5+Ski7SrCjIJ5Ynhz0viTjQ==",
|
"integrity": "sha512-VuHlbhLePXvKTx55X0iIZ1EXARAoOf6lpbKJK8180jny2gpYxGhk7rwG1G8s6G6ZDST+kyVa04gncxz8F/z6oA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4922,9 +4922,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-ordered-list": {
|
"node_modules/@tiptap/extension-ordered-list": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.2.2.tgz",
|
||||||
"integrity": "sha512-ZB3MpZh/GEy1zKgw7XDQF4FIwycZWNof1k9WbDZOI063Ch4qHZowhVttH2mTCELuyvTMM/o9a8CS7qMqQB48bw==",
|
"integrity": "sha512-TgG+mJyQB5CfeqCD65B9CLesl2IQTjc7tAKm8ZxRzF80GrCrmWNnoXi424TWmSF6cUV/4TY0G5dTkc9kB+S2tw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4935,9 +4935,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-paragraph": {
|
"node_modules/@tiptap/extension-paragraph": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.2.2.tgz",
|
||||||
"integrity": "sha512-a+tKtmj4bU3GVCH1NE8VHWnhVexxX5boTVxsHIr4yGG3UoKo1c5AO7YMaeX2W5xB5iIA+BQqOPCDPEAx34dd2A==",
|
"integrity": "sha512-USTzajni/hsQXsBF0Lbw++FyPJKCDlROyaKbZi77QQoUsU2MbJIka7k4tGc0kwyTB04aAl+E6+0iS4xIhC3rug==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4948,9 +4948,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-placeholder": {
|
"node_modules/@tiptap/extension-placeholder": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.2.2.tgz",
|
||||||
"integrity": "sha512-Z42jo0termRAf0S0L8oxrts94IWX5waU4isS2CUw8xCUigYyCFslkhQXkWATO1qRbjNFLKN2C9qvCgGf4UeBrw==",
|
"integrity": "sha512-dPN15nVu+HlONJSCiKjEl9n5/61CltTLSefhyRVQJeE7lmtMUGrsErUdOYMxGskehDQWIQW1VM0OiF63ln/3sA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4962,9 +4962,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-strike": {
|
"node_modules/@tiptap/extension-strike": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.2.2.tgz",
|
||||||
"integrity": "sha512-RO4/EYe2iPD6ifDHORT8fF6O9tfdtnzxLGwZIKZXnEgtweH+MgoqevEzXYdS+54Wraq4TUQGNcsYhe49pv7Rlw==",
|
"integrity": "sha512-0wsqiZPatw9QrK3DJ1jCMukenc8DRQtEXo4/dQjtnzNDhe7ZySed6kPpGO9A4lASG7NV7GmYZ/k5iEELr+iE6Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4975,9 +4975,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-text": {
|
"node_modules/@tiptap/extension-text": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.2.2.tgz",
|
||||||
"integrity": "sha512-LvzChcTCcPSMNLUjZe/A9SHXWGDHtvk73fR7CBqAeNU0MxhBPEBI03GFQ6RzW3xX0CmDmjpZoDxFMB+hDEtW1A==",
|
"integrity": "sha512-Zj53Vp/9MSQj5uiaObFaD3y7grUpMy+PfHmrK5XAZSFhRx+QpGUp+oItlKod6IJEIu8rq4dChgE7i6kT9uwWlA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -4988,9 +4988,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-underline": {
|
"node_modules/@tiptap/extension-underline": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.2.2.tgz",
|
||||||
"integrity": "sha512-oMYa7qib/5wJjpUp79GZEe+E/iyf1oZBsgiG26IspEtVTHZmpn3+Ktud7l43y/hpTeEzFTKOF1/uVbayHtSERg==",
|
"integrity": "sha512-sCgbFbBU1fMWKCmDjZ6Am257kXM6ZjCV24AwbNusweieQnnD3aTXC7/iZg101sa2VshLsXozm8t2QDTyafnL+Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -5001,9 +5001,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@tiptap/extension-youtube": {
|
"node_modules/@tiptap/extension-youtube": {
|
||||||
"version": "2.0.3",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-youtube/-/extension-youtube-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@tiptap/extension-youtube/-/extension-youtube-2.2.2.tgz",
|
||||||
"integrity": "sha512-iZsMr+88I3hvfbJNLmiPsz2/8ZGpMucyCxRbrZGg1D6wBw4oiUhRPHzGJ3APlECzpanCjyQNMHIk/gvSDDX3ig==",
|
"integrity": "sha512-kBLIRxEAfQbd/YmMuVeeqJLXb9p1pviAtPFmlufCt3tXeBc6Lqz9iOscdqOHOFSiNdzvFnN7016kKEpOwLftSw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
|
@ -13644,9 +13644,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/solid-tiptap": {
|
"node_modules/solid-tiptap": {
|
||||||
"version": "0.6.0",
|
"version": "0.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/solid-tiptap/-/solid-tiptap-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/solid-tiptap/-/solid-tiptap-0.7.0.tgz",
|
||||||
"integrity": "sha512-79soXY4lSGkCdlfKalawGyvPE0kOvrKd7w9Zy3o3MY4dppti5Yd2RUVqyNPtYPpvCyqaLg+kofq81RRGl/Ql4Q==",
|
"integrity": "sha512-EIOopM1gcV6Pjp6R5l5iQy5RqFodDpHzQDRdDJAqffi3XqMSu6lzd7dcDtb1DPbZtvl1uNTXRxmpUGGvB8KD0A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
|
|
60
package.json
60
package.json
|
@ -66,35 +66,35 @@
|
||||||
"@solid-primitives/upload": "0.0.110",
|
"@solid-primitives/upload": "0.0.110",
|
||||||
"@solidjs/meta": "0.29.1",
|
"@solidjs/meta": "0.29.1",
|
||||||
"@thisbeyond/solid-select": "0.14.0",
|
"@thisbeyond/solid-select": "0.14.0",
|
||||||
"@tiptap/core": "2.0.3",
|
"@tiptap/core": "2.2.2",
|
||||||
"@tiptap/extension-blockquote": "2.0.3",
|
"@tiptap/extension-blockquote": "2.2.2",
|
||||||
"@tiptap/extension-bold": "2.0.3",
|
"@tiptap/extension-bold": "2.2.2",
|
||||||
"@tiptap/extension-bubble-menu": "2.0.3",
|
"@tiptap/extension-bubble-menu": "2.2.2",
|
||||||
"@tiptap/extension-bullet-list": "2.0.3",
|
"@tiptap/extension-bullet-list": "2.2.2",
|
||||||
"@tiptap/extension-character-count": "2.0.3",
|
"@tiptap/extension-character-count": "2.2.2",
|
||||||
"@tiptap/extension-collaboration": "2.0.3",
|
"@tiptap/extension-collaboration": "2.2.2",
|
||||||
"@tiptap/extension-collaboration-cursor": "2.0.3",
|
"@tiptap/extension-collaboration-cursor": "2.2.2",
|
||||||
"@tiptap/extension-document": "2.0.3",
|
"@tiptap/extension-document": "2.2.2",
|
||||||
"@tiptap/extension-dropcursor": "2.0.3",
|
"@tiptap/extension-dropcursor": "2.2.2",
|
||||||
"@tiptap/extension-floating-menu": "2.0.3",
|
"@tiptap/extension-floating-menu": "2.2.2",
|
||||||
"@tiptap/extension-focus": "2.0.3",
|
"@tiptap/extension-focus": "2.2.2",
|
||||||
"@tiptap/extension-gapcursor": "2.0.3",
|
"@tiptap/extension-gapcursor": "2.2.2",
|
||||||
"@tiptap/extension-hard-break": "2.0.3",
|
"@tiptap/extension-hard-break": "2.2.2",
|
||||||
"@tiptap/extension-heading": "2.0.3",
|
"@tiptap/extension-heading": "2.2.2",
|
||||||
"@tiptap/extension-highlight": "2.0.3",
|
"@tiptap/extension-highlight": "2.2.2",
|
||||||
"@tiptap/extension-history": "2.0.3",
|
"@tiptap/extension-history": "2.2.2",
|
||||||
"@tiptap/extension-horizontal-rule": "2.0.3",
|
"@tiptap/extension-horizontal-rule": "2.2.2",
|
||||||
"@tiptap/extension-image": "2.0.3",
|
"@tiptap/extension-image": "2.2.2",
|
||||||
"@tiptap/extension-italic": "2.0.3",
|
"@tiptap/extension-italic": "2.2.2",
|
||||||
"@tiptap/extension-link": "2.0.3",
|
"@tiptap/extension-link": "2.2.2",
|
||||||
"@tiptap/extension-list-item": "2.0.3",
|
"@tiptap/extension-list-item": "2.2.2",
|
||||||
"@tiptap/extension-ordered-list": "2.0.3",
|
"@tiptap/extension-ordered-list": "2.2.2",
|
||||||
"@tiptap/extension-paragraph": "2.0.3",
|
"@tiptap/extension-paragraph": "2.2.2",
|
||||||
"@tiptap/extension-placeholder": "2.0.3",
|
"@tiptap/extension-placeholder": "2.2.2",
|
||||||
"@tiptap/extension-strike": "2.0.3",
|
"@tiptap/extension-strike": "2.2.2",
|
||||||
"@tiptap/extension-text": "2.0.3",
|
"@tiptap/extension-text": "2.2.2",
|
||||||
"@tiptap/extension-underline": "2.0.3",
|
"@tiptap/extension-underline": "2.2.2",
|
||||||
"@tiptap/extension-youtube": "2.0.3",
|
"@tiptap/extension-youtube": "2.2.2",
|
||||||
"@types/js-cookie": "3.0.6",
|
"@types/js-cookie": "3.0.6",
|
||||||
"@types/node": "20.9.0",
|
"@types/node": "20.9.0",
|
||||||
"@urql/core": "4.2.3",
|
"@urql/core": "4.2.3",
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
"sass": "1.69.5",
|
"sass": "1.69.5",
|
||||||
"solid-js": "1.8.7",
|
"solid-js": "1.8.7",
|
||||||
"solid-popper": "0.3.0",
|
"solid-popper": "0.3.0",
|
||||||
"solid-tiptap": "0.6.0",
|
"solid-tiptap": "0.7.0",
|
||||||
"solid-transition-group": "0.2.3",
|
"solid-transition-group": "0.2.3",
|
||||||
"sort-json": "2.0.1",
|
"sort-json": "2.0.1",
|
||||||
"sort-package-json": "2.6.0",
|
"sort-package-json": "2.6.0",
|
||||||
|
|
|
@ -16,13 +16,10 @@ import { ConditionalWrapper } from '../../_shared/ConditionalWrapper'
|
||||||
import { Icon } from '../../_shared/Icon'
|
import { Icon } from '../../_shared/Icon'
|
||||||
import { Userpic } from '../Userpic'
|
import { Userpic } from '../Userpic'
|
||||||
|
|
||||||
|
import { FollowedInfo } from '../../../pages/types'
|
||||||
import stylesButton from '../../_shared/Button/Button.module.scss'
|
import stylesButton from '../../_shared/Button/Button.module.scss'
|
||||||
import styles from './AuthorBadge.module.scss'
|
import styles from './AuthorBadge.module.scss'
|
||||||
|
|
||||||
type FollowedInfo = {
|
|
||||||
value?: boolean
|
|
||||||
loaded?: boolean
|
|
||||||
}
|
|
||||||
type Props = {
|
type Props = {
|
||||||
author: Author
|
author: Author
|
||||||
minimizeSubscribeButton?: boolean
|
minimizeSubscribeButton?: boolean
|
||||||
|
|
|
@ -308,7 +308,13 @@ export const AuthorCard = (props: Props) => {
|
||||||
author={subscription}
|
author={subscription}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
<TopicBadge topic={subscription} />
|
<TopicBadge
|
||||||
|
isFollowed={{
|
||||||
|
loaded: Boolean(authorSubs()),
|
||||||
|
value: isOwnerSubscribed(subscription.id),
|
||||||
|
}}
|
||||||
|
topic={subscription}
|
||||||
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
</For>
|
</For>
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
.TopicBadge {
|
.TopicBadge {
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
align-items: flex-start;
|
|
||||||
margin-bottom: 2rem;
|
margin-bottom: 2rem;
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
|
|
||||||
|
.content {
|
||||||
|
align-items: flex-start;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
margin-bottom: .8rem;
|
||||||
|
}
|
||||||
.basicInfo {
|
.basicInfo {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: row nowrap;
|
flex-flow: row nowrap;
|
||||||
|
@ -78,3 +81,34 @@
|
||||||
width: 9em;
|
width: 9em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.stats {
|
||||||
|
@include font-size(1.5rem);
|
||||||
|
|
||||||
|
color: var(--secondary-color);
|
||||||
|
display: flex;
|
||||||
|
margin: 0 0 1em;
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(sm) {
|
||||||
|
margin-top: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.statsItem {
|
||||||
|
@include font-size(1.4rem);
|
||||||
|
|
||||||
|
margin-right: 1.6rem;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.followers {
|
||||||
|
word-break: keep-all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { clsx } from 'clsx'
|
import { clsx } from 'clsx'
|
||||||
import { Show, createEffect, createSignal } from 'solid-js'
|
import { Show, createEffect, createSignal, on } from 'solid-js'
|
||||||
|
|
||||||
import { useFollowing } from '../../../context/following'
|
import { useFollowing } from '../../../context/following'
|
||||||
import { useLocalize } from '../../../context/localize'
|
import { useLocalize } from '../../../context/localize'
|
||||||
|
@ -11,11 +11,14 @@ import { getImageUrl } from '../../../utils/getImageUrl'
|
||||||
import { Button } from '../../_shared/Button'
|
import { Button } from '../../_shared/Button'
|
||||||
import { CheckButton } from '../../_shared/CheckButton'
|
import { CheckButton } from '../../_shared/CheckButton'
|
||||||
|
|
||||||
|
import { FollowedInfo } from '../../../pages/types'
|
||||||
import styles from './TopicBadge.module.scss'
|
import styles from './TopicBadge.module.scss'
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
topic: Topic
|
topic: Topic
|
||||||
minimizeSubscribeButton?: boolean
|
minimizeSubscribeButton?: boolean
|
||||||
|
isFollowed?: FollowedInfo
|
||||||
|
showStat?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TopicBadge = (props: Props) => {
|
export const TopicBadge = (props: Props) => {
|
||||||
|
@ -24,12 +27,12 @@ export const TopicBadge = (props: Props) => {
|
||||||
const [isMobileView, setIsMobileView] = createSignal(false)
|
const [isMobileView, setIsMobileView] = createSignal(false)
|
||||||
const { requireAuthentication } = useSession()
|
const { requireAuthentication } = useSession()
|
||||||
const { setFollowing, loading: subLoading } = useFollowing()
|
const { setFollowing, loading: subLoading } = useFollowing()
|
||||||
const [followed, setFollowed] = createSignal()
|
const [isFollowed, setIsFollowed] = createSignal<boolean>()
|
||||||
|
|
||||||
const handleFollowClick = () => {
|
const handleFollowClick = () => {
|
||||||
const value = !followed()
|
const value = !isFollowed()
|
||||||
requireAuthentication(() => {
|
requireAuthentication(() => {
|
||||||
setFollowed(value)
|
setIsFollowed(value)
|
||||||
setFollowing(FollowingEntity.Topic, props.topic.slug, value)
|
setFollowing(FollowingEntity.Topic, props.topic.slug, value)
|
||||||
}, 'subscribe')
|
}, 'subscribe')
|
||||||
}
|
}
|
||||||
|
@ -38,11 +41,21 @@ export const TopicBadge = (props: Props) => {
|
||||||
setIsMobileView(!mediaMatches.sm)
|
setIsMobileView(!mediaMatches.sm)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
createEffect(
|
||||||
|
on(
|
||||||
|
() => props.isFollowed,
|
||||||
|
() => {
|
||||||
|
setIsFollowed(props.isFollowed.value)
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
const title = () =>
|
const title = () =>
|
||||||
lang() === 'en' ? capitalize(props.topic.slug.replaceAll('-', ' ')) : props.topic.title
|
lang() === 'en' ? capitalize(props.topic.slug.replaceAll('-', ' ')) : props.topic.title
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class={styles.TopicBadge}>
|
<div class={styles.TopicBadge}>
|
||||||
|
<div class={styles.content}>
|
||||||
<div class={styles.basicInfo}>
|
<div class={styles.basicInfo}>
|
||||||
<a
|
<a
|
||||||
href={`/topic/${props.topic.slug}`}
|
href={`/topic/${props.topic.slug}`}
|
||||||
|
@ -75,11 +88,11 @@ export const TopicBadge = (props: Props) => {
|
||||||
<Show
|
<Show
|
||||||
when={!props.minimizeSubscribeButton}
|
when={!props.minimizeSubscribeButton}
|
||||||
fallback={
|
fallback={
|
||||||
<CheckButton text={t('Follow')} checked={Boolean(followed())} onClick={handleFollowClick} />
|
<CheckButton text={t('Follow')} checked={Boolean(isFollowed())} onClick={handleFollowClick} />
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Show
|
<Show
|
||||||
when={followed()}
|
when={isFollowed()}
|
||||||
fallback={
|
fallback={
|
||||||
<Button
|
<Button
|
||||||
variant="primary"
|
variant="primary"
|
||||||
|
@ -101,5 +114,13 @@ export const TopicBadge = (props: Props) => {
|
||||||
</Show>
|
</Show>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class={styles.stats}>
|
||||||
|
<span class={styles.statsItem}>{t('shoutsWithCount', { count: props.topic?.stat?.shouts })}</span>
|
||||||
|
<span class={styles.statsItem}>{t('authorsWithCount', { count: props.topic?.stat?.authors })}</span>
|
||||||
|
<span class={styles.statsItem}>
|
||||||
|
{t('followersWithCount', { count: props.topic?.stat?.followers })}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,45 +32,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.stats {
|
|
||||||
@include font-size(1.7rem);
|
|
||||||
|
|
||||||
color: #9fa1a7;
|
|
||||||
display: flex;
|
|
||||||
margin: 0 0 1em;
|
|
||||||
|
|
||||||
@include media-breakpoint-down(md) {
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
@include media-breakpoint-down(sm) {
|
|
||||||
margin-top: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.statsItem {
|
|
||||||
@include font-size(1.5rem);
|
|
||||||
|
|
||||||
margin-right: 1.6rem;
|
|
||||||
white-space: nowrap;
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.compact {
|
|
||||||
font-size: small;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.followers {
|
|
||||||
word-break: keep-all;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.button {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.loadMoreContainer {
|
.loadMoreContainer {
|
||||||
margin-top: 48px;
|
margin-top: 48px;
|
||||||
text-align: center;
|
text-align: center;
|
|
@ -1,21 +1,22 @@
|
||||||
import type { Topic } from '../../graphql/schema/core.gen'
|
import type { Topic } from '../../../graphql/schema/core.gen'
|
||||||
|
|
||||||
import { Meta } from '@solidjs/meta'
|
import { Meta } from '@solidjs/meta'
|
||||||
import { clsx } from 'clsx'
|
import { clsx } from 'clsx'
|
||||||
import { For, Show, createEffect, createMemo, createSignal } from 'solid-js'
|
import { For, Show, createEffect, createMemo, createSignal } from 'solid-js'
|
||||||
|
|
||||||
import { useFollowing } from '../../context/following'
|
import { useFollowing } from '../../../context/following'
|
||||||
import { useLocalize } from '../../context/localize'
|
import { useLocalize } from '../../../context/localize'
|
||||||
import { useRouter } from '../../stores/router'
|
import { useRouter } from '../../../stores/router'
|
||||||
import { setTopicsSort, useTopicsStore } from '../../stores/zine/topics'
|
import { setTopicsSort, useTopicsStore } from '../../../stores/zine/topics'
|
||||||
import { capitalize } from '../../utils/capitalize'
|
import { capitalize } from '../../../utils/capitalize'
|
||||||
import { dummyFilter } from '../../utils/dummyFilter'
|
import { dummyFilter } from '../../../utils/dummyFilter'
|
||||||
import { getImageUrl } from '../../utils/getImageUrl'
|
import { getImageUrl } from '../../../utils/getImageUrl'
|
||||||
import { scrollHandler } from '../../utils/scroll'
|
import { scrollHandler } from '../../../utils/scroll'
|
||||||
import { TopicCard } from '../Topic/Card'
|
import { TopicCard } from '../../Topic/Card'
|
||||||
import { Loading } from '../_shared/Loading'
|
import { Loading } from '../../_shared/Loading'
|
||||||
import { SearchField } from '../_shared/SearchField'
|
import { SearchField } from '../../_shared/SearchField'
|
||||||
|
|
||||||
|
import { TopicBadge } from '../../Topic/TopicBadge'
|
||||||
import styles from './AllTopics.module.scss'
|
import styles from './AllTopics.module.scss'
|
||||||
|
|
||||||
type AllTopicsPageSearchParams = {
|
type AllTopicsPageSearchParams = {
|
||||||
|
@ -29,7 +30,7 @@ type Props = {
|
||||||
|
|
||||||
const PAGE_SIZE = 20
|
const PAGE_SIZE = 20
|
||||||
|
|
||||||
export const AllTopicsView = (props: Props) => {
|
export const AllTopics = (props: Props) => {
|
||||||
const { t, lang } = useLocalize()
|
const { t, lang } = useLocalize()
|
||||||
const { searchParams, changeSearchParams } = useRouter<AllTopicsPageSearchParams>()
|
const { searchParams, changeSearchParams } = useRouter<AllTopicsPageSearchParams>()
|
||||||
const [limit, setLimit] = createSignal(PAGE_SIZE)
|
const [limit, setLimit] = createSignal(PAGE_SIZE)
|
||||||
|
@ -41,8 +42,6 @@ export const AllTopicsView = (props: Props) => {
|
||||||
sortBy: searchParams().by || 'shouts',
|
sortBy: searchParams().by || 'shouts',
|
||||||
})
|
})
|
||||||
|
|
||||||
const { subscriptions } = useFollowing()
|
|
||||||
|
|
||||||
createEffect(() => {
|
createEffect(() => {
|
||||||
if (!searchParams().by) {
|
if (!searchParams().by) {
|
||||||
changeSearchParams({
|
changeSearchParams({
|
||||||
|
@ -76,7 +75,7 @@ export const AllTopicsView = (props: Props) => {
|
||||||
return keys
|
return keys
|
||||||
})
|
})
|
||||||
|
|
||||||
const subscribed = (topicSlug: string) => subscriptions.topics.some((topic) => topic.slug === topicSlug)
|
const { isOwnerSubscribed } = useFollowing()
|
||||||
|
|
||||||
const showMore = () => setLimit((oldLimit) => oldLimit + PAGE_SIZE)
|
const showMore = () => setLimit((oldLimit) => oldLimit + PAGE_SIZE)
|
||||||
const [searchQuery, setSearchQuery] = createSignal('')
|
const [searchQuery, setSearchQuery] = createSignal('')
|
||||||
|
@ -186,28 +185,18 @@ export const AllTopicsView = (props: Props) => {
|
||||||
|
|
||||||
<Show when={searchParams().by && searchParams().by !== 'title'}>
|
<Show when={searchParams().by && searchParams().by !== 'title'}>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-20 col-xl-18">
|
<div class="col-lg-20 col-xl-18 py-4">
|
||||||
<For each={filteredResults().slice(0, limit())}>
|
<For each={filteredResults().slice(0, limit())}>
|
||||||
{(topic) => (
|
{(topic) => (
|
||||||
<>
|
<>
|
||||||
<TopicCard
|
<TopicBadge
|
||||||
topic={topic}
|
topic={topic}
|
||||||
compact={false}
|
isFollowed={{
|
||||||
subscribed={subscribed(topic.slug)}
|
loaded: filteredResults().length > 0,
|
||||||
showPublications={true}
|
value: isOwnerSubscribed(topic.slug),
|
||||||
showDescription={true}
|
}}
|
||||||
|
showStat={true}
|
||||||
/>
|
/>
|
||||||
<div class={styles.stats}>
|
|
||||||
<span class={styles.statsItem}>
|
|
||||||
{t('shoutsWithCount', { count: topic.stat.shouts })}
|
|
||||||
</span>
|
|
||||||
<span class={styles.statsItem}>
|
|
||||||
{t('authorsWithCount', { count: topic.stat.authors })}
|
|
||||||
</span>
|
|
||||||
<span class={styles.statsItem}>
|
|
||||||
{t('followersWithCount', { count: topic.stat.followers })}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</For>
|
</For>
|
1
src/components/Views/AllTopics/index.ts
Normal file
1
src/components/Views/AllTopics/index.ts
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export { AllTopics } from './AllTopics'
|
|
@ -128,7 +128,6 @@ export const AuthorView = (props: Props) => {
|
||||||
const data = await apiClient.getReactionsBy({
|
const data = await apiClient.getReactionsBy({
|
||||||
by: { comment: false, created_by: commenter.id },
|
by: { comment: false, created_by: commenter.id },
|
||||||
})
|
})
|
||||||
console.debug('[components.Author] fetched comments', data)
|
|
||||||
setCommented(data)
|
setCommented(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,17 +12,15 @@ export const StaticPage = (props: Props) => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<PageLayout title={props.title}>
|
<PageLayout title={props.title}>
|
||||||
<div class="wide-container">
|
|
||||||
<div class="row">
|
|
||||||
<article
|
<article
|
||||||
class="col-md-16 col-lg-14 col-xl-12 offset-md-5"
|
class="wide-container container--static-page"
|
||||||
id="articleBody"
|
id="articleBody"
|
||||||
ref={(el) => (articleBodyElement.current = el)}
|
ref={(el) => (articleBodyElement.current = el)}
|
||||||
>
|
>
|
||||||
{props.children}
|
<div class="row">
|
||||||
</article>
|
<div class="col-md-12 col-xl-14 offset-md-5 order-md-first">{props.children}</div>
|
||||||
|
|
||||||
<div class="col-md-6 offset-md-1">
|
<div class="col-md-6 col-lg-4 order-md-last">
|
||||||
<TableOfContents
|
<TableOfContents
|
||||||
variant="article"
|
variant="article"
|
||||||
parentSelector="#articleBody"
|
parentSelector="#articleBody"
|
||||||
|
@ -30,7 +28,7 @@ export const StaticPage = (props: Props) => {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</article>
|
||||||
</PageLayout>
|
</PageLayout>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ interface FollowingContextType {
|
||||||
loadSubscriptions: () => void
|
loadSubscriptions: () => void
|
||||||
follow: (what: FollowingEntity, slug: string) => Promise<void>
|
follow: (what: FollowingEntity, slug: string) => Promise<void>
|
||||||
unfollow: (what: FollowingEntity, slug: string) => Promise<void>
|
unfollow: (what: FollowingEntity, slug: string) => Promise<void>
|
||||||
isOwnerSubscribed: (userId: number) => boolean
|
isOwnerSubscribed: (id: number | string) => boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
const FollowingContext = createContext<FollowingContextType>()
|
const FollowingContext = createContext<FollowingContextType>()
|
||||||
|
@ -109,9 +109,11 @@ export const FollowingProvider = (props: { children: JSX.Element }) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const isOwnerSubscribed = (userId: number) => {
|
const isOwnerSubscribed = (id?: number | string) => {
|
||||||
if (!author()) return
|
if (!author() || !subscriptions) return
|
||||||
return !!subscriptions?.authors?.some((authorEntity) => authorEntity.id === userId)
|
const isAuthorSubscribed = subscriptions.authors?.some((authorEntity) => authorEntity.id === id)
|
||||||
|
const isTopicSubscribed = subscriptions.topics?.some((topicEntity) => topicEntity.slug === id)
|
||||||
|
return !!isAuthorSubscribed || !!isTopicSubscribed
|
||||||
}
|
}
|
||||||
|
|
||||||
const value: FollowingContextType = {
|
const value: FollowingContextType = {
|
||||||
|
|
|
@ -15,7 +15,6 @@ export const DiscussionRulesPage = () => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StaticPage title={ogTitle}>
|
<StaticPage title={ogTitle}>
|
||||||
<article class="wide-container container--static-page">
|
|
||||||
<Meta name="descprition" content={description} />
|
<Meta name="descprition" content={description} />
|
||||||
<Meta name="keywords" content={t('principles keywords')} />
|
<Meta name="keywords" content={t('principles keywords')} />
|
||||||
<Meta name="og:type" content="article" />
|
<Meta name="og:type" content="article" />
|
||||||
|
@ -53,8 +52,8 @@ export const DiscussionRulesPage = () => {
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
Шовинизм, расизм, сексизм, гомофобия, пропаганда ненависти, педофилии, суицида,
|
Шовинизм, расизм, сексизм, гомофобия, пропаганда ненависти, педофилии, суицида, распространение
|
||||||
распространение детской порнографии и другого человеконенавистнического контента.
|
детской порнографии и другого человеконенавистнического контента.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
@ -69,9 +68,9 @@ export const DiscussionRulesPage = () => {
|
||||||
<p>
|
<p>
|
||||||
Неаргументированная критика и комментарии вроде «отстой», «зачем
|
Неаргументированная критика и комментарии вроде «отстой», «зачем
|
||||||
я это увидел/а», «не читал, но осуждаю», «либераху
|
я это увидел/а», «не читал, но осуждаю», «либераху
|
||||||
порвало», «лол», «скатились», «первый нах»
|
порвало», «лол», «скатились», «первый нах» и тому
|
||||||
и тому подобные. Односложные реплики не подразумевают возможность обогащающего
|
подобные. Односложные реплики не подразумевают возможность обогащающего диалога,
|
||||||
диалога, не продуктивны и никак не помогают авторам делать материалы лучше,
|
не продуктивны и никак не помогают авторам делать материалы лучше,
|
||||||
а читателям — разобраться.
|
а читателям — разобраться.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
@ -95,9 +94,9 @@ export const DiscussionRulesPage = () => {
|
||||||
<strong>Обмен знаниями и историями.</strong> Осмысленные высказывания по теме поста,
|
<strong>Обмен знаниями и историями.</strong> Осмысленные высказывания по теме поста,
|
||||||
оригинальные рассуждения, рассказы о личном опыте и проектах, обмен профессиональной
|
оригинальные рассуждения, рассказы о личном опыте и проектах, обмен профессиональной
|
||||||
экспертизой, наблюдения и реальные истории из жизни — чем больше
|
экспертизой, наблюдения и реальные истории из жизни — чем больше
|
||||||
мы делимся друг с другом знаниями, тем интереснее и плодотворнее становится
|
мы делимся друг с другом знаниями, тем интереснее и плодотворнее становится наше
|
||||||
наше общение. Помните, что каждый вдумчивый ответ повышает качество дискуссий
|
общение. Помните, что каждый вдумчивый ответ повышает качество дискуссий в сообществе
|
||||||
в сообществе и делает чтение самиздата ещё интереснее.
|
и делает чтение самиздата ещё интереснее.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
@ -107,23 +106,22 @@ export const DiscussionRulesPage = () => {
|
||||||
направляют дискуссии в продуктивное русло, но и улучшают настроение.
|
направляют дискуссии в продуктивное русло, но и улучшают настроение.
|
||||||
Не вредите негативом, которого в интернете и без нас хватает,
|
Не вредите негативом, которого в интернете и без нас хватает,
|
||||||
и не травите на корню классные инициативы — всё великое начинается
|
и не травите на корню классные инициативы — всё великое начинается
|
||||||
с малого. Мы за поддерживающую и вдохновляющую атмосферу
|
с малого. Мы за поддерживающую и вдохновляющую атмосферу в сообществе.
|
||||||
в сообществе. Надеемся, вы тоже.
|
Надеемся, вы тоже.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
<strong>Благодарность и поддержка.</strong> Если публикация вам зашла,
|
<strong>Благодарность и поддержка.</strong> Если публикация вам зашла, не стесняйтесь
|
||||||
не стесняйтесь ставить лайки, делиться понравившимися материалами, благодарить авторов,
|
ставить лайки, делиться понравившимися материалами, благодарить авторов, читателей, художников
|
||||||
читателей, художников и редакторов в комментариях. Цените и поддерживайте
|
и редакторов в комментариях. Цените и поддерживайте классные проекты, сильные
|
||||||
классные проекты, сильные тексты, новое искусство, осмысленные комментарии и вклад других
|
тексты, новое искусство, осмысленные комментарии и вклад других
|
||||||
в самиздат — сотрудничество делает нас сильнее и усиливает звучание идей
|
в самиздат — сотрудничество делает нас сильнее и усиливает звучание идей
|
||||||
и смыслов, которые помогают лучше понимать мир.
|
и смыслов, которые помогают лучше понимать мир.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</article>
|
|
||||||
</StaticPage>
|
</StaticPage>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,11 @@ export const DogmaPage = () => {
|
||||||
<Meta name="twitter:card" content="summary_large_image" />
|
<Meta name="twitter:card" content="summary_large_image" />
|
||||||
<Meta name="twitter:title" content={ogTitle} />
|
<Meta name="twitter:title" content={ogTitle} />
|
||||||
<Meta name="twitter:description" content={description} />
|
<Meta name="twitter:description" content={description} />
|
||||||
<article class="wide-container container--static-page">
|
|
||||||
<h4>Редакционные принципы</h4>
|
<h1>
|
||||||
|
<span class="wrapped">Редакционные принципы</span>
|
||||||
|
</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Дискурс — журнал с открытой горизонтальной редакцией. Содержание журнала определяется прямым
|
Дискурс — журнал с открытой горизонтальной редакцией. Содержание журнала определяется прямым
|
||||||
голосованием его авторов. Мы нередко занимаем различные позиции по разным проблемам, но
|
голосованием его авторов. Мы нередко занимаем различные позиции по разным проблемам, но
|
||||||
|
@ -39,8 +42,8 @@ export const DogmaPage = () => {
|
||||||
<li>
|
<li>
|
||||||
<b>Ответственно относимся к источникам.</b>
|
<b>Ответственно относимся к источникам.</b>
|
||||||
Мы выбираем только надежные источники, проверяем информацию и рассказываем, как и откуда мы её
|
Мы выбираем только надежные источники, проверяем информацию и рассказываем, как и откуда мы её
|
||||||
получили, кроме случаев, когда это может нанести вред источникам. Тогда мы не раскроем их, даже
|
получили, кроме случаев, когда это может нанести вред источникам. Тогда мы не раскроем их, даже в
|
||||||
в суде.
|
суде.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<b>Выбираем компетентных и независимых экспертов</b>, понимая всю степень ответственности перед
|
<b>Выбираем компетентных и независимых экспертов</b>, понимая всю степень ответственности перед
|
||||||
|
@ -63,7 +66,6 @@ export const DogmaPage = () => {
|
||||||
.
|
.
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</article>
|
|
||||||
</StaticPage>
|
</StaticPage>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,14 +24,13 @@ export const GuidePage = () => {
|
||||||
<Meta name="twitter:card" content="summary_large_image" />
|
<Meta name="twitter:card" content="summary_large_image" />
|
||||||
<Meta name="twitter:title" content={ogTitle} />
|
<Meta name="twitter:title" content={ogTitle} />
|
||||||
<Meta name="twitter:description" content={description} />
|
<Meta name="twitter:description" content={description} />
|
||||||
<article class="wide-container container--static-page">
|
|
||||||
<h1 id="about">
|
<h1 id="about">
|
||||||
<span class="wrapped">{ogTitle}</span>
|
<span class="wrapped">{ogTitle}</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Дискурс — независимый журнал о культуре, науке, искусстве и обществе
|
Дискурс — независимый журнал о культуре, науке, искусстве и обществе с
|
||||||
с
|
|
||||||
<a href="/about/manifest">открытой редакцией</a>. У нас нет главного редактора, инвестора
|
<a href="/about/manifest">открытой редакцией</a>. У нас нет главного редактора, инвестора
|
||||||
и вообще никого, кто бы принимал единоличные решения. Вместо традиционных иерархий
|
и вообще никого, кто бы принимал единоличные решения. Вместо традиционных иерархий
|
||||||
Дискурс основан на принципах прямой демократии: в нашем горизонтальном сообществе все
|
Дискурс основан на принципах прямой демократии: в нашем горизонтальном сообществе все
|
||||||
|
@ -50,9 +49,9 @@ export const GuidePage = () => {
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
<a href="/topic/art">Искусство</a>
|
<a href="/topic/art">Искусство</a>
|
||||||
— здесь, например, представлены художественные произведения: литература,
|
— здесь, например, представлены художественные произведения: литература, живопись,
|
||||||
живопись, музыка, фотографии, видео. Этот раздел помогает прозвучать новому искусству,
|
музыка, фотографии, видео. Этот раздел помогает прозвучать новому искусству, которое создают
|
||||||
которое создают российские художники, писатели, режиссёры и музыканты.
|
российские художники, писатели, режиссёры и музыканты.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
{/*
|
{/*
|
||||||
|
@ -83,24 +82,24 @@ export const GuidePage = () => {
|
||||||
материалы по жанрам (например, <a href="/topic/interview">интервью</a>,{' '}
|
материалы по жанрам (например, <a href="/topic/interview">интервью</a>,{' '}
|
||||||
<a href="/topic/reportage">репортажи</a>, <a href="/topic/essay">эссе</a>,{' '}
|
<a href="/topic/reportage">репортажи</a>, <a href="/topic/essay">эссе</a>,{' '}
|
||||||
<a href="/topic/likbez">ликбезы</a>
|
<a href="/topic/likbez">ликбезы</a>
|
||||||
), по тематике (<a href="/topic/cinema">кино</a>, <a href="/topic/philosophy">философия</a>
|
), по тематике (<a href="/topic/cinema">кино</a>, <a href="/topic/philosophy">философия</a>,{' '}
|
||||||
, <a href="/topic/history">история</a>, <a href="/topic/absurdism">абсурдизм</a>,{' '}
|
<a href="/topic/history">история</a>, <a href="/topic/absurdism">абсурдизм</a>,{' '}
|
||||||
<a href="/topic/sex">секс</a> и т.д.) или в серии (как «
|
<a href="/topic/sex">секс</a> и т.д.) или в серии (как «
|
||||||
<a href="/topic/zakony-mira">Законы мира</a>» или «
|
<a href="/topic/zakony-mira">Законы мира</a>» или «
|
||||||
<a href="/topic/za-liniey-mannergeyma">За линией Маннергейма</a>
|
<a href="/topic/za-liniey-mannergeyma">За линией Маннергейма</a>
|
||||||
»). Темы объединяют сотни публикаций, помогают ориентироваться в журнале
|
»). Темы объединяют сотни публикаций, помогают ориентироваться в журнале и следить
|
||||||
и следить за интересными материалами.
|
за интересными материалами.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h3 id="become-author">Как стать автором журнала</h3>
|
<h3 id="become-author">Как стать автором журнала</h3>
|
||||||
<p>
|
<p>
|
||||||
Дискурс объединяет журналистов, активистов, музыкантов, художников, фотографов, режиссеров,
|
Дискурс объединяет журналистов, активистов, музыкантов, художников, фотографов, режиссеров,
|
||||||
философов, ученых и других замечательных людей. Каждый может{' '}
|
философов, ученых и других замечательных людей. Каждый может <a href="/create">прислать</a>{' '}
|
||||||
<a href="/create">прислать</a> свой материал в журнал. Формат и тематика
|
свой материал в журнал. Формат и тематика не имеют значения, единственное, что
|
||||||
не имеют значения, единственное, что важно —{' '}
|
важно — <a href="/how-to-write-a-good-article">хороший</a> ли материал. Если
|
||||||
<a href="/how-to-write-a-good-article">хороший</a> ли материал. Если сообщество поддержит
|
сообщество поддержит вашу публикацию, она выйдет в журнале и станет доступна тысячам
|
||||||
вашу публикацию, она выйдет в журнале и станет доступна тысячам наших читателей.
|
наших читателей.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -167,8 +166,8 @@ export const GuidePage = () => {
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
<strong>Возможность обратиться к широкой аудитории</strong>. Дискурс читают десятки
|
<strong>Возможность обратиться к широкой аудитории</strong>. Дискурс читают десятки тысяч
|
||||||
тысяч людей, и с каждым днем их становится больше.
|
людей, и с каждым днем их становится больше.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -185,12 +184,11 @@ export const GuidePage = () => {
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
<strong>Пресс-карты для корреспондентов</strong>. Три опубликованные статьи позволяют
|
<strong>Пресс-карты для корреспондентов</strong>. Три опубликованные статьи позволяют авторам
|
||||||
авторам Дискурса получить официальные удостоверения журналистов (пресс-карты)
|
Дискурса получить официальные удостоверения журналистов (пресс-карты) на следующий год.
|
||||||
на следующий год. Пресс-карты удостоверяют, что вы журналист и можете
|
Пресс-карты удостоверяют, что вы журналист и можете пользоваться всеми теми правами,
|
||||||
пользоваться всеми теми правами, которые гарантирует Закон о СМИ. Кроме того, многие
|
которые гарантирует Закон о СМИ. Кроме того, многие культурные институции (музеи, галереи
|
||||||
культурные институции (музеи, галереи и др.) предоставляют журналистам право свободного
|
и др.) предоставляют журналистам право свободного входа.
|
||||||
входа.
|
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -241,7 +239,6 @@ export const GuidePage = () => {
|
||||||
</a>
|
</a>
|
||||||
. Мы обязательно ответим.
|
. Мы обязательно ответим.
|
||||||
</p>
|
</p>
|
||||||
</article>
|
|
||||||
</>
|
</>
|
||||||
</StaticPage>
|
</StaticPage>
|
||||||
)
|
)
|
||||||
|
|
|
@ -27,24 +27,24 @@ export const HelpPage = () => {
|
||||||
<Meta name="twitter:card" content="summary_large_image" />
|
<Meta name="twitter:card" content="summary_large_image" />
|
||||||
<Meta name="twitter:title" content={ogTitle} />
|
<Meta name="twitter:title" content={ogTitle} />
|
||||||
<Meta name="twitter:description" content={description} />
|
<Meta name="twitter:description" content={description} />
|
||||||
<article class="wide-container container--static-page">
|
|
||||||
<h1 id="help-us">
|
<h1 id="help-us">
|
||||||
<span class="wrapped">Как вы можете поддержать Дискурс?</span>
|
<span class="wrapped">Как вы можете поддержать Дискурс?</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Дискурс — уникальное независимое издание с горизонтальной редакцией,
|
Дискурс — уникальное независимое издание с горизонтальной редакцией, существующее
|
||||||
существующее в интересах своих читателей. Ваша поддержка действительно много
|
в интересах своих читателей. Ваша поддержка действительно много значит —
|
||||||
значит — не только для редакции Дискурса, но и для сохранения
|
не только для редакции Дискурса, но и для сохранения свободной мысли
|
||||||
свободной мысли и некоммерческого искусства в нашем обществе.
|
и некоммерческого искусства в нашем обществе.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Дискурс существует на добровольных началах. Никакой медиахолдинг, фонд или государственная
|
Дискурс существует на добровольных началах. Никакой медиахолдинг, фонд или государственная
|
||||||
структура не финансирует нас — благодаря этому мы можем писать о том,
|
структура не финансирует нас — благодаря этому мы можем писать о том,
|
||||||
что важно, а не о том, что выгодно. Сообщество наших волонтеров ежедневно
|
что важно, а не о том, что выгодно. Сообщество наших волонтеров ежедневно трудится,
|
||||||
трудится, чтобы рассказывать вам интересные, не освещенные другими изданиями
|
чтобы рассказывать вам интересные, не освещенные другими изданиями истории —
|
||||||
истории — но мы не сможем делать это без вашей помощи. Пожертвования
|
но мы не сможем делать это без вашей помощи. Пожертвования читателей составляют
|
||||||
читателей составляют основу нашего бюджета и позволяют нам существовать.
|
основу нашего бюджета и позволяют нам существовать.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Если вам нравится то, что мы делаем и вы хотите, чтобы Дискурс продолжался,
|
Если вам нравится то, что мы делаем и вы хотите, чтобы Дискурс продолжался,
|
||||||
|
@ -58,10 +58,9 @@ export const HelpPage = () => {
|
||||||
<h3 id="financial-report">На что пойдут деньги?</h3>
|
<h3 id="financial-report">На что пойдут деньги?</h3>
|
||||||
<p>
|
<p>
|
||||||
Ваши пожертвования пойдут на оплату серверов, содержание офиса, зарплату редакции
|
Ваши пожертвования пойдут на оплату серверов, содержание офиса, зарплату редакции
|
||||||
и налоги, оплату юридического сопровождения и труда бухгалтера, совершенствование
|
и налоги, оплату юридического сопровождения и труда бухгалтера, совершенствование сайта,
|
||||||
сайта, аренду помещения для открытой редакции, на печать альманаха Дискурс с лучшими
|
аренду помещения для открытой редакции, на печать альманаха Дискурс с лучшими текстами
|
||||||
текстами авторов за полгода, а также на другие редакционные и технические
|
авторов за полгода, а также на другие редакционные и технические расходы.
|
||||||
расходы.
|
|
||||||
</p>
|
</p>
|
||||||
<h3>Ваша помощь позволит нам</h3>
|
<h3>Ваша помощь позволит нам</h3>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -75,10 +74,10 @@ export const HelpPage = () => {
|
||||||
<li>
|
<li>
|
||||||
<h4>Создавать еще больше контента.</h4>
|
<h4>Создавать еще больше контента.</h4>
|
||||||
<p>
|
<p>
|
||||||
Каждый день к нам присоединяются новые люди, и чем больше нас становится, тем
|
Каждый день к нам присоединяются новые люди, и чем больше нас становится, тем больше
|
||||||
больше мы творим и строже оцениваем результаты творчества друг друга.
|
мы творим и строже оцениваем результаты творчества друг друга. В результате
|
||||||
В результате повышается и количество, и качество контента. Каждый день мы
|
повышается и количество, и качество контента. Каждый день мы трудимся, чтобы
|
||||||
трудимся, чтобы открывать нашим читателям новые грани окружающего мира.
|
открывать нашим читателям новые грани окружающего мира.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -91,9 +90,9 @@ export const HelpPage = () => {
|
||||||
<li>
|
<li>
|
||||||
<h4>Модернизировать сайт.</h4>
|
<h4>Модернизировать сайт.</h4>
|
||||||
<p>
|
<p>
|
||||||
Мы совершенствуем платформу и стараемся сделать проект максимально удобным для
|
Мы совершенствуем платформу и стараемся сделать проект максимально удобным для вас.
|
||||||
вас. Мы работаем над мобильной версией, новым дизайном, фукционалом, системой
|
Мы работаем над мобильной версией, новым дизайном, фукционалом, системой регистрации,
|
||||||
регистрации, навигации и рекомендаций, которые сделают наше общение еще увлекательней.
|
навигации и рекомендаций, которые сделают наше общение еще увлекательней.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -118,9 +117,9 @@ export const HelpPage = () => {
|
||||||
</p>
|
</p>
|
||||||
<h3 id="other">Как ещё можно поддержать Дискурс?</h3>
|
<h3 id="other">Как ещё можно поддержать Дискурс?</h3>
|
||||||
<p>
|
<p>
|
||||||
Есть много других способов поддержать Дискурс и труд наших авторов. Например,
|
Есть много других способов поддержать Дискурс и труд наших авторов. Например, вы можете
|
||||||
вы можете периодически рассказывать о проекте своим друзьям в соцсетях, делиться
|
периодически рассказывать о проекте своим друзьям в соцсетях, делиться хорошими
|
||||||
хорошими материалами или — что еще лучше — публиковать свои статьи
|
материалами или — что еще лучше — публиковать свои статьи
|
||||||
в «Дискурсе». Но главное, что вы можете сделать для Дискурса, —
|
в «Дискурсе». Но главное, что вы можете сделать для Дискурса, —
|
||||||
читать нас. Мы вкладываем в журнал душу, и внимание каждого читателя убеждает нас
|
читать нас. Мы вкладываем в журнал душу, и внимание каждого читателя убеждает нас
|
||||||
в правильности выбранного пути. Не переключайтесь.
|
в правильности выбранного пути. Не переключайтесь.
|
||||||
|
@ -133,7 +132,6 @@ export const HelpPage = () => {
|
||||||
</a>
|
</a>
|
||||||
.
|
.
|
||||||
</p>
|
</p>
|
||||||
</article>
|
|
||||||
</>
|
</>
|
||||||
</StaticPage>
|
</StaticPage>
|
||||||
)
|
)
|
||||||
|
|
|
@ -36,7 +36,7 @@ export const ManifestPage = () => {
|
||||||
<Meta name="twitter:card" content="summary_large_image" />
|
<Meta name="twitter:card" content="summary_large_image" />
|
||||||
<Meta name="twitter:title" content={ogTitle} />
|
<Meta name="twitter:title" content={ogTitle} />
|
||||||
<Meta name="twitter:description" content={description} />
|
<Meta name="twitter:description" content={description} />
|
||||||
<article class="wide-container container--static-page">
|
|
||||||
<h1 id="manifest">
|
<h1 id="manifest">
|
||||||
<span class="wrapped">Манифест</span>
|
<span class="wrapped">Манифест</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
@ -46,8 +46,8 @@ export const ManifestPage = () => {
|
||||||
редакцией, основанный на принципах свободы слова, прямой демократии и совместного
|
редакцией, основанный на принципах свободы слова, прямой демократии и совместного
|
||||||
редактирования. Дискурс создаётся открытым медиасообществом ученых, журналистов, музыкантов,
|
редактирования. Дискурс создаётся открытым медиасообществом ученых, журналистов, музыкантов,
|
||||||
писателей, предпринимателей, философов, инженеров, художников и специалистов со всего
|
писателей, предпринимателей, философов, инженеров, художников и специалистов со всего
|
||||||
мира, объединившихся, чтобы вместе делать общий журнал и объяснять с разных точек
|
мира, объединившихся, чтобы вместе делать общий журнал и объяснять с разных точек зрения
|
||||||
зрения мозаичную картину современности.
|
мозаичную картину современности.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Мы пишем о культуре, науке и обществе, рассказываем о новых идеях
|
Мы пишем о культуре, науке и обществе, рассказываем о новых идеях
|
||||||
|
@ -62,9 +62,9 @@ export const ManifestPage = () => {
|
||||||
Редакция Дискурса открыта для всех: у нас нет цензуры, запретных тем и идеологических
|
Редакция Дискурса открыта для всех: у нас нет цензуры, запретных тем и идеологических
|
||||||
рамок. Каждый может <a href="/create">прислать материал</a> в журнал и
|
рамок. Каждый может <a href="/create">прислать материал</a> в журнал и
|
||||||
<a href="/about/guide">присоединиться к редакции</a>. Предоставляя трибуну для независимой
|
<a href="/about/guide">присоединиться к редакции</a>. Предоставляя трибуну для независимой
|
||||||
журналистики и художественных проектов, мы помогаем людям рассказывать свои истории
|
журналистики и художественных проектов, мы помогаем людям рассказывать свои истории так,
|
||||||
так, чтобы они были услышаны. Мы убеждены: чем больше голосов будет звучать
|
чтобы они были услышаны. Мы убеждены: чем больше голосов будет звучать на Дискурсе, тем
|
||||||
на Дискурсе, тем громче в полифонии мнений будет слышна истина.
|
громче в полифонии мнений будет слышна истина.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 class="h2" id="participation">
|
<h2 class="h2" id="participation">
|
||||||
|
@ -81,8 +81,8 @@ export const ManifestPage = () => {
|
||||||
<h3 id="contribute">Предлагать материалы</h3>
|
<h3 id="contribute">Предлагать материалы</h3>
|
||||||
</summary>
|
</summary>
|
||||||
<p>
|
<p>
|
||||||
<a href="/create">Создавайте</a> свои статьи и художественные работы — лучшие
|
<a href="/create">Создавайте</a> свои статьи и художественные работы — лучшие из
|
||||||
из них будут опубликованы в журнале. Дискурс — некоммерческое издание, авторы
|
них будут опубликованы в журнале. Дискурс — некоммерческое издание, авторы
|
||||||
публикуются в журнале на общественных началах, получая при этом{' '}
|
публикуются в журнале на общественных началах, получая при этом{' '}
|
||||||
<a href="/create?collab=true">поддержку</a> редакции, право голоса, множество других
|
<a href="/create?collab=true">поддержку</a> редакции, право голоса, множество других
|
||||||
возможностей и читателей по всему миру.
|
возможностей и читателей по всему миру.
|
||||||
|
@ -95,8 +95,8 @@ export const ManifestPage = () => {
|
||||||
</summary>
|
</summary>
|
||||||
<p>
|
<p>
|
||||||
Дискурс существует на пожертвования читателей. Если вам нравится журнал, пожалуйста,{' '}
|
Дискурс существует на пожертвования читателей. Если вам нравится журнал, пожалуйста,{' '}
|
||||||
<a href="/about/help">поддержите</a> нашу работу. Ваши пожертвования пойдут на выпуск
|
<a href="/about/help">поддержите</a> нашу работу. Ваши пожертвования пойдут на выпуск новых
|
||||||
новых материалов, оплату серверов, труда программистов, дизайнеров и редакторов.
|
материалов, оплату серверов, труда программистов, дизайнеров и редакторов.
|
||||||
</p>
|
</p>
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
@ -117,8 +117,8 @@ export const ManifestPage = () => {
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Если вы разработчик и хотите помогать с развитием сайта Дискурса,{' '}
|
Если вы разработчик и хотите помогать с развитием сайта Дискурса,{' '}
|
||||||
<a href="mailto:services@discours.io">присоединяйтесь к IT-команде самиздата</a>.
|
<a href="mailto:services@discours.io">присоединяйтесь к IT-команде самиздата</a>. Открытый
|
||||||
Открытый код платформы для независимой журналистики, а также всех наших спецпроектов
|
код платформы для независимой журналистики, а также всех наших спецпроектов
|
||||||
и медиаинструментов находится{' '}
|
и медиаинструментов находится{' '}
|
||||||
<a href="https://github.com/Discours">в свободном доступе на GitHub</a>.
|
<a href="https://github.com/Discours">в свободном доступе на GitHub</a>.
|
||||||
</p>
|
</p>
|
||||||
|
@ -157,7 +157,6 @@ export const ManifestPage = () => {
|
||||||
<a href="mailto:welcome@discours.io">welcome@discours.io</a>. Мы обязательно ответим
|
<a href="mailto:welcome@discours.io">welcome@discours.io</a>. Мы обязательно ответим
|
||||||
и постараемся реализовать все хорошие задумки.
|
и постараемся реализовать все хорошие задумки.
|
||||||
</p>
|
</p>
|
||||||
</article>
|
|
||||||
</>
|
</>
|
||||||
</StaticPage>
|
</StaticPage>
|
||||||
)
|
)
|
||||||
|
|
|
@ -13,7 +13,6 @@ export const PartnersPage = () => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StaticPage title={ogTitle}>
|
<StaticPage title={ogTitle}>
|
||||||
<article class="wide-container container--static-page">
|
|
||||||
<Meta name="descprition" content={description} />
|
<Meta name="descprition" content={description} />
|
||||||
<Meta name="keywords" content={t('keywords')} />
|
<Meta name="keywords" content={t('keywords')} />
|
||||||
<Meta name="og:type" content="article" />
|
<Meta name="og:type" content="article" />
|
||||||
|
@ -24,12 +23,8 @@ export const PartnersPage = () => {
|
||||||
<Meta name="twitter:card" content="summary_large_image" />
|
<Meta name="twitter:card" content="summary_large_image" />
|
||||||
<Meta name="twitter:title" content={ogTitle} />
|
<Meta name="twitter:title" content={ogTitle} />
|
||||||
<Meta name="twitter:description" content={description} />
|
<Meta name="twitter:description" content={description} />
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12 col-xl-14 offset-md-5 order-md-first">
|
|
||||||
<h1>{t('Partners')}</h1>
|
<h1>{t('Partners')}</h1>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
</StaticPage>
|
</StaticPage>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,6 @@ export const PrinciplesPage = () => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StaticPage title={ogTitle}>
|
<StaticPage title={ogTitle}>
|
||||||
<article class="wide-container container--static-page">
|
|
||||||
<Meta name="descprition" content={description} />
|
<Meta name="descprition" content={description} />
|
||||||
<Meta name="keywords" content={t('principles keywords')} />
|
<Meta name="keywords" content={t('principles keywords')} />
|
||||||
<Meta name="og:type" content="article" />
|
<Meta name="og:type" content="article" />
|
||||||
|
@ -24,6 +23,7 @@ export const PrinciplesPage = () => {
|
||||||
<Meta name="twitter:card" content="summary_large_image" />
|
<Meta name="twitter:card" content="summary_large_image" />
|
||||||
<Meta name="twitter:title" content={ogTitle} />
|
<Meta name="twitter:title" content={ogTitle} />
|
||||||
<Meta name="twitter:description" content={description} />
|
<Meta name="twitter:description" content={description} />
|
||||||
|
|
||||||
<h1>
|
<h1>
|
||||||
<span class="wrapped">{ogTitle}</span>
|
<span class="wrapped">{ogTitle}</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
@ -41,17 +41,17 @@ export const PrinciplesPage = () => {
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
<strong>Многоголосие</strong>. Мы ценим свободу слова и аргументированные мнения.
|
<strong>Многоголосие</strong>. Мы ценим свободу слова и аргументированные мнения.
|
||||||
Предоставляя трибуну каждому, кому есть что сказать, самиздат отражает полифонию позиций,
|
Предоставляя трибуну каждому, кому есть что сказать, самиздат отражает полифонию позиций, знаний
|
||||||
знаний и опыта, которые открывают более полную картину реальности.
|
и опыта, которые открывают более полную картину реальности.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
<strong>Взаимопомощь</strong>. Мы помогаем друг другу, потому что хотим, чтобы
|
<strong>Взаимопомощь</strong>. Мы помогаем друг другу, потому что хотим, чтобы в мире
|
||||||
в мире было еще больше хорошего. Обсуждая что-то, мы всегда интересуемся, чем можем
|
было еще больше хорошего. Обсуждая что-то, мы всегда интересуемся, чем можем помочь.
|
||||||
помочь. В самиздате можно найти специалистов практически в любых сферах
|
В самиздате можно найти специалистов практически в любых сферах и получить
|
||||||
и получить поддержку от сотен людей. Благодаря коллективной экспертизе глобального
|
поддержку от сотен людей. Благодаря коллективной экспертизе глобального сообщества
|
||||||
сообщества в самиздате выходят крутейшие публикации, которыми можно вечно гордиться.
|
в самиздате выходят крутейшие публикации, которыми можно вечно гордиться.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -64,8 +64,8 @@ export const PrinciplesPage = () => {
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
<strong>Созидание</strong>. Мы создаем, потому что любим создавать. Мы открыто
|
<strong>Созидание</strong>. Мы создаем, потому что любим создавать. Мы открыто делимся
|
||||||
делимся опытом, дарим идеи, обмениваемся мнениями и благодарим за критику, используя
|
опытом, дарим идеи, обмениваемся мнениями и благодарим за критику, используя
|
||||||
ее для совершенствования мастерства и саморазвития. Мы знаем, что мир
|
ее для совершенствования мастерства и саморазвития. Мы знаем, что мир
|
||||||
не идеальное место, и делаем всё возможное, чтобы он стал лучше.
|
не идеальное место, и делаем всё возможное, чтобы он стал лучше.
|
||||||
</p>
|
</p>
|
||||||
|
@ -78,11 +78,10 @@ export const PrinciplesPage = () => {
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Открытая редакция объединяет сотни потрясающих людей со всего мира, которые делают крутейшие
|
Открытая редакция объединяет сотни потрясающих людей со всего мира, которые делают крутейшие
|
||||||
вещи. Это пространство, где доверяют, вдохновляют, исследуют и создают новое вместе.
|
вещи. Это пространство, где доверяют, вдохновляют, исследуют и создают новое вместе. Поскольку
|
||||||
Поскольку все в сообществе очень разные, как-то мы собрались и решили зафиксировать
|
все в сообществе очень разные, как-то мы собрались и решили зафиксировать базовые
|
||||||
базовые ценности открытой редакции, а заодно придумали универсальные правила взаимодействия,
|
ценности открытой редакции, а заодно придумали универсальные правила взаимодействия, чтобы
|
||||||
чтобы общение было не только плодотворным, но и приятным для всех участников
|
общение было не только плодотворным, но и приятным для всех участников сообщества.
|
||||||
сообщества.
|
|
||||||
</p>
|
</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
|
@ -108,14 +107,13 @@ export const PrinciplesPage = () => {
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
<strong>Критикуем и реагируем конструктивно</strong>. Самиздат про то, чтобы
|
<strong>Критикуем и реагируем конструктивно</strong>. Самиздат про то, чтобы
|
||||||
разбираться в сложных вещах всем сообществом, поэтому мы тактично и без
|
разбираться в сложных вещах всем сообществом, поэтому мы тактично и без агрессии
|
||||||
агрессии делимся мнениями, стараясь убедительно аргументировать позиции.
|
делимся мнениями, стараясь убедительно аргументировать позиции. И с благодарностью
|
||||||
И с благодарностью принимаем критику, используя ее для улучшения наших
|
принимаем критику, используя ее для улучшения наших проектов. Мы верим, что каждый
|
||||||
проектов. Мы верим, что каждый участник сообщества имеет добрые намерения,
|
участник сообщества имеет добрые намерения, и придерживаемся принципов доброжелательной
|
||||||
и придерживаемся принципов доброжелательной критики, стараемся делиться
|
критики, стараемся делиться советами — лучшим средством для самосовершенствования.
|
||||||
советами — лучшим средством для самосовершенствования. Обоснованная критика
|
Обоснованная критика помогает и адресату, и всем участникам сообщества досконально
|
||||||
помогает и адресату, и всем участникам сообщества досконально изучить тему
|
изучить тему и глубже разобраться в проблеме.
|
||||||
и глубже разобраться в проблеме.
|
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
@ -134,10 +132,10 @@ export const PrinciplesPage = () => {
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
<strong>Не переходим на личности — это признак токсичности</strong>.
|
<strong>Не переходим на личности — это признак токсичности</strong>. Всегда
|
||||||
Всегда мудрее обсуждать точку зрения человека, а не его самого, даже если
|
мудрее обсуждать точку зрения человека, а не его самого, даже если он вам
|
||||||
он вам не импонирует. Предвзятое отношение ограничивает кругозор, добавляет
|
не импонирует. Предвзятое отношение ограничивает кругозор, добавляет преждевременные
|
||||||
преждевременные морщины и не помогает окружающим стать лучше. Вежливость
|
морщины и не помогает окружающим стать лучше. Вежливость
|
||||||
и взаимоуважение — краеугольная основа вдумчивых и осмысленных дискуссий.
|
и взаимоуважение — краеугольная основа вдумчивых и осмысленных дискуссий.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
@ -156,19 +154,19 @@ export const PrinciplesPage = () => {
|
||||||
<p>
|
<p>
|
||||||
<strong>Даем еще один шанс</strong>. Все совершают ошибки, и за один проступок
|
<strong>Даем еще один шанс</strong>. Все совершают ошибки, и за один проступок
|
||||||
не стоит вычеркивать людей из жизни. Ошибки нужны, чтобы на них учиться
|
не стоит вычеркивать людей из жизни. Ошибки нужны, чтобы на них учиться
|
||||||
и делать выводы. Однако если многократно и систематически нарушать правила
|
и делать выводы. Однако если многократно и систематически нарушать правила сообщества,
|
||||||
сообщества, наверняка можно заслужить минусы в карму от других участников
|
наверняка можно заслужить минусы в карму от других участников и потерять доступ
|
||||||
и потерять доступ к сообществу.
|
к сообществу.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
<strong>Вместе создаем идеальную среду общения</strong>. Открытая редакция — это
|
<strong>Вместе создаем идеальную среду общения</strong>. Открытая редакция — это
|
||||||
утопическое пространство обогащающей и осмысленной коммуникации. Атмосфера
|
утопическое пространство обогащающей и осмысленной коммуникации. Атмосфера горизонтального
|
||||||
горизонтального сообщества складывается из действий каждого, поэтому мы действуем
|
сообщества складывается из действий каждого, поэтому мы действуем так, чтобы
|
||||||
так, чтобы способствовать сотворчеству, коллективному познанию и развитию самиздата
|
способствовать сотворчеству, коллективному познанию и развитию самиздата и нашей
|
||||||
и нашей альтернативной интеллектуальной медиасреды.
|
альтернативной интеллектуальной медиасреды.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
@ -176,14 +174,13 @@ export const PrinciplesPage = () => {
|
||||||
<p>
|
<p>
|
||||||
<strong>Помним, что всё в сообществе зависит от нас</strong>. Если нам чего-то
|
<strong>Помним, что всё в сообществе зависит от нас</strong>. Если нам чего-то
|
||||||
не хватает, мы начинаем действовать — рассказываем об идее, находим
|
не хватает, мы начинаем действовать — рассказываем об идее, находим
|
||||||
единомышленников, готовим и запускаем проект. Так в сообществе становится
|
единомышленников, готовим и запускаем проект. Так в сообществе становится на одну
|
||||||
на одну крутую активность больше. Так появилось наше сообщество. Так появился самиздат
|
крутую активность больше. Так появилось наше сообщество. Так появился самиздат и все
|
||||||
и все проекты открытой редакции. Чтобы в сообществе случилось что-то прекрасное,
|
проекты открытой редакции. Чтобы в сообществе случилось что-то прекрасное, достаточно
|
||||||
достаточно просто положить этому начало.
|
просто положить этому начало.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</article>
|
|
||||||
</StaticPage>
|
</StaticPage>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,6 @@ export const TermsOfUsePage = () => {
|
||||||
<Meta name="twitter:title" content={ogTitle} />
|
<Meta name="twitter:title" content={ogTitle} />
|
||||||
<Meta name="twitter:description" content={description} />
|
<Meta name="twitter:description" content={description} />
|
||||||
|
|
||||||
<article class="wide-container container--static-page">
|
|
||||||
<h1 id="terms-of-use">
|
<h1 id="terms-of-use">
|
||||||
<span class="wrapped">Пользовательское соглашение</span>
|
<span class="wrapped">Пользовательское соглашение</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
@ -112,8 +111,8 @@ export const TermsOfUsePage = () => {
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
Цитирование, распространение, доведение до всеобщего сведения материалов Cайта
|
Цитирование, распространение, доведение до всеобщего сведения материалов Cайта
|
||||||
приветствуется. При использовании материалов сайта необходимо указать имя автора
|
приветствуется. При использовании материалов сайта необходимо указать имя автора и активную
|
||||||
и активную ссылку на материал на Сайте.
|
ссылку на материал на Сайте.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
@ -131,8 +130,8 @@ export const TermsOfUsePage = () => {
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
Публиковать контент, авторские права на который принадлежат третьим лицам, без согласия
|
Публиковать контент, авторские права на который принадлежат третьим лицам, без согласия
|
||||||
этих лиц. Если авторские права на контент принадлежат нескольким лицам, то его
|
этих лиц. Если авторские права на контент принадлежат нескольким лицам, то его публикация
|
||||||
публикация предполагает согласие их всех.
|
предполагает согласие их всех.
|
||||||
</li>
|
</li>
|
||||||
<li>Размещать коммерческую и политическую рекламу.</li>
|
<li>Размещать коммерческую и политическую рекламу.</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -175,8 +174,8 @@ export const TermsOfUsePage = () => {
|
||||||
<p>
|
<p>
|
||||||
Данные, которые пользователи сообщают о себе сами при подаче заявки, регистрации,
|
Данные, которые пользователи сообщают о себе сами при подаче заявки, регистрации,
|
||||||
авторизации или заполнения профиля, в том числе ФИО и контактную информацию.
|
авторизации или заполнения профиля, в том числе ФИО и контактную информацию.
|
||||||
Конфиденциальные данные, такие как идентификатор и электронный адрес, используются
|
Конфиденциальные данные, такие как идентификатор и электронный адрес, используются для
|
||||||
для идентификации пользователя. Данные профиля, размещённые публично по желанию
|
идентификации пользователя. Данные профиля, размещённые публично по желанию
|
||||||
пользователя, которое выражается фактом их предоставления, используется для
|
пользователя, которое выражается фактом их предоставления, используется для
|
||||||
демонстрации другим пользователям той информации о себе, которую пользователь готов
|
демонстрации другим пользователям той информации о себе, которую пользователь готов
|
||||||
предоставить.
|
предоставить.
|
||||||
|
@ -198,8 +197,8 @@ export const TermsOfUsePage = () => {
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p class="ng-binding">
|
<p class="ng-binding">
|
||||||
По желанию пользователя Издательство готово удалить любую информацию о нем,
|
По желанию пользователя Издательство готово удалить любую информацию о нем, собранную
|
||||||
собранную автоматическим путем. Для этого следует написать на адрес электронной почты{' '}
|
автоматическим путем. Для этого следует написать на адрес электронной почты{' '}
|
||||||
<a href="mailto:welcome@discours.io" target="_blank" rel="noreferrer">
|
<a href="mailto:welcome@discours.io" target="_blank" rel="noreferrer">
|
||||||
welcome@discours.io
|
welcome@discours.io
|
||||||
</a>
|
</a>
|
||||||
|
@ -240,7 +239,6 @@ export const TermsOfUsePage = () => {
|
||||||
</a>{' '}
|
</a>{' '}
|
||||||
или через форму <a href="/connect">«предложить идею»</a>.
|
или через форму <a href="/connect">«предложить идею»</a>.
|
||||||
</p>
|
</p>
|
||||||
</article>
|
|
||||||
</StaticPage>
|
</StaticPage>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,6 @@ export const ThanksPage = () => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StaticPage title={ogTitle}>
|
<StaticPage title={ogTitle}>
|
||||||
<article class="wide-container container--static-page">
|
|
||||||
<Meta name="descprition" content={description} />
|
<Meta name="descprition" content={description} />
|
||||||
<Meta name="keywords" content={t('keywords')} />
|
<Meta name="keywords" content={t('keywords')} />
|
||||||
<Meta name="og:type" content="article" />
|
<Meta name="og:type" content="article" />
|
||||||
|
@ -25,6 +24,7 @@ export const ThanksPage = () => {
|
||||||
<Meta name="twitter:card" content="summary_large_image" />
|
<Meta name="twitter:card" content="summary_large_image" />
|
||||||
<Meta name="twitter:title" content={ogTitle} />
|
<Meta name="twitter:title" content={ogTitle} />
|
||||||
<Meta name="twitter:description" content={description} />
|
<Meta name="twitter:description" content={description} />
|
||||||
|
|
||||||
<h1>
|
<h1>
|
||||||
<span class="wrapped">{ogTitle}</span>
|
<span class="wrapped">{ogTitle}</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
@ -56,12 +56,12 @@ export const ThanksPage = () => {
|
||||||
<h3>Неоценимый вклад в Дискурс внесли и вносят</h3>
|
<h3>Неоценимый вклад в Дискурс внесли и вносят</h3>
|
||||||
<p>
|
<p>
|
||||||
Мария Бессмертная, Дамир Бикчурин, Константин Ворович, Ян Выговский, Эльдар Гариффулин, Павел
|
Мария Бессмертная, Дамир Бикчурин, Константин Ворович, Ян Выговский, Эльдар Гариффулин, Павел
|
||||||
Гафаров, Виктория Гендлина, Александр Гусев, Данила Давыдов, Константин Дубовик, Вячеслав
|
Гафаров, Виктория Гендлина, Александр Гусев, Данила Давыдов, Константин Дубовик, Вячеслав Еременко,
|
||||||
Еременко, Кристина Ибрагим, Екатерина Ильина, Анна Капаева, Яна Климова, Александр Коренков, Ирэна
|
Кристина Ибрагим, Екатерина Ильина, Анна Капаева, Яна Климова, Александр Коренков, Ирэна Лесневская,
|
||||||
Лесневская, Игорь Лобанов, Анастасия Лозовая, Григорий Ломизе, Евгений Медведев, Павел Никулин,
|
Игорь Лобанов, Анастасия Лозовая, Григорий Ломизе, Евгений Медведев, Павел Никулин, Николай
|
||||||
Николай Носачевский, Андрей Орловский, Михаил Панин, Антон Панов, Павел Пепперштейн, Любовь
|
Носачевский, Андрей Орловский, Михаил Панин, Антон Панов, Павел Пепперштейн, Любовь Покровская, Илья
|
||||||
Покровская, Илья Розовский, Денис Светличный, Павел Соколов, Сергей Стрельников, Глеб Струнников,
|
Розовский, Денис Светличный, Павел Соколов, Сергей Стрельников, Глеб Струнников, Николай Тарковский,
|
||||||
Николай Тарковский, Кирилл Филимонов, Алексей Хапов, Екатерина Харитонова
|
Кирилл Филимонов, Алексей Хапов, Екатерина Харитонова
|
||||||
</p>
|
</p>
|
||||||
<h3>Авторы</h3>
|
<h3>Авторы</h3>
|
||||||
<p>
|
<p>
|
||||||
|
@ -70,25 +70,24 @@ export const ThanksPage = () => {
|
||||||
каждому автору
|
каждому автору
|
||||||
</a>{' '}
|
</a>{' '}
|
||||||
за участие и поддержку проекта. Сегодня, когда для большинства деньги стали целью
|
за участие и поддержку проекта. Сегодня, когда для большинства деньги стали целью
|
||||||
и основным источником мотивации, бескорыстная помощь и основанный на энтузиазме
|
и основным источником мотивации, бескорыстная помощь и основанный на энтузиазме труд
|
||||||
труд бесценны. Именно вы своим трудом каждый день делаете Дискурс таким, какой он есть.
|
бесценны. Именно вы своим трудом каждый день делаете Дискурс таким, какой он есть.
|
||||||
</p>
|
</p>
|
||||||
<h3>Иллюстраторы</h3>
|
<h3>Иллюстраторы</h3>
|
||||||
<p>
|
<p>
|
||||||
Ольга Аверинова, Регина Акчурина, Айгуль Берхеева, Екатерина Вакуленко, Анастасия Викулова, Мария
|
Ольга Аверинова, Регина Акчурина, Айгуль Берхеева, Екатерина Вакуленко, Анастасия Викулова, Мария
|
||||||
Власенко, Ванесса Гаврилова, Ольга Горше, Ксения Горшкова, Ангелина Гребенюкова, Илья Diliago,
|
Власенко, Ванесса Гаврилова, Ольга Горше, Ксения Горшкова, Ангелина Гребенюкова, Илья Diliago, Антон
|
||||||
Антон Жаголкин, Саша Керова, Ольга Машинец, Злата Мечетина, Тала Никитина, Никита Поздняков,
|
Жаголкин, Саша Керова, Ольга Машинец, Злата Мечетина, Тала Никитина, Никита Поздняков, Матвей
|
||||||
Матвей Сапегин, Татьяна Сафонова, Виктория Шибаева
|
Сапегин, Татьяна Сафонова, Виктория Шибаева
|
||||||
</p>
|
</p>
|
||||||
<h3>Меценаты</h3>
|
<h3>Меценаты</h3>
|
||||||
<p>
|
<p>
|
||||||
Дискурс существует исключительно на пожертвования читателей. Мы бесконечно признательны
|
Дискурс существует исключительно на пожертвования читателей. Мы бесконечно признательны
|
||||||
всем, кто нас поддерживает. Ваши пожертвования — финансовый фундамент журнала.
|
всем, кто нас поддерживает. Ваши пожертвования — финансовый фундамент журнала. Благодаря
|
||||||
Благодаря вам мы развиваем платформу качественной журналистики, которая помогает самым разным
|
вам мы развиваем платформу качественной журналистики, которая помогает самым разным авторам
|
||||||
авторам быть услышанными. Стать нашим меценатом и подписаться на ежемесячную поддержку
|
быть услышанными. Стать нашим меценатом и подписаться на ежемесячную поддержку проекта
|
||||||
проекта можно <a href="/about/help">здесь</a>.
|
можно <a href="/about/help">здесь</a>.
|
||||||
</p>
|
</p>
|
||||||
</article>
|
|
||||||
</StaticPage>
|
</StaticPage>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@ import type { PageProps } from './types'
|
||||||
|
|
||||||
import { createSignal, onMount } from 'solid-js'
|
import { createSignal, onMount } from 'solid-js'
|
||||||
|
|
||||||
import { AllTopicsView } from '../components/Views/AllTopics'
|
import { AllTopics } from '../components/Views/AllTopics'
|
||||||
import { PageLayout } from '../components/_shared/PageLayout'
|
import { PageLayout } from '../components/_shared/PageLayout'
|
||||||
import { useLocalize } from '../context/localize'
|
import { useLocalize } from '../context/localize'
|
||||||
import { loadAllTopics } from '../stores/zine/topics'
|
import { loadAllTopics } from '../stores/zine/topics'
|
||||||
|
@ -23,7 +23,7 @@ export const AllTopicsPage = (props: PageProps) => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<PageLayout title={t('Themes and plots')}>
|
<PageLayout title={t('Themes and plots')}>
|
||||||
<AllTopicsView isLoaded={isLoaded()} topics={props.allTopics} />
|
<AllTopics isLoaded={isLoaded()} topics={props.allTopics} />
|
||||||
</PageLayout>
|
</PageLayout>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,4 +50,9 @@ export type UploadedFile = {
|
||||||
originalFilename?: string
|
originalFilename?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type FollowedInfo = {
|
||||||
|
value?: boolean
|
||||||
|
loaded?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
export type SubscriptionFilter = 'all' | 'authors' | 'topics' | 'communities'
|
export type SubscriptionFilter = 'all' | 'authors' | 'topics' | 'communities'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user