matrix-art

An image gallery for Matrix
git clone git://archive.git.mtrnord.blog/MTRNord/matrix-art.git
Log | Files | Refs | README | LICENSE

commit 3b20dadd2d383536408552f220b361ede82dae70
parent 7ebaed550e699b082651c019e019f5c923d9c954
Author: MTRNord <mtrnord1@gmail.com>
Date:   Fri, 28 Jan 2022 22:57:29 +0100

Add License to the post page

Diffstat:
M.github/workflows/spell-check.yml | 2+-
Mpages/post/[id].tsx | 45++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/spell-check.yml b/.github/workflows/spell-check.yml @@ -18,7 +18,7 @@ jobs: - name: Checkout Actions Repository uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2 - - name: Check spelling of proposals + - name: Check spelling uses: crate-ci/typos@4b2e66487c0d94e0f0ab1765a9e74bfed663aa1e # master with: config: ${{github.workspace}}/_typos.toml diff --git a/pages/post/[id].tsx b/pages/post/[id].tsx @@ -120,6 +120,48 @@ class Post extends PureComponent<Props, State> { } } + getLicenseUrl(license_type: string): string { + switch (license_type) { + case "cc-by-4.0": + return "https://creativecommons.org/licenses/by/4.0/"; + case "cc-by-sa-4.0": + return "https://creativecommons.org/licenses/by-sa/4.0/"; + case "cc-by-nc-4.0": + return "https://creativecommons.org/licenses/by-nc/4.0/"; + case "cc-by-nc-sa-4.0": + return "https://creativecommons.org/licenses/by-nc-sa/4.0/"; + case "cc-by-nd-4.0": + return "https://creativecommons.org/licenses/by-nd/4.0/"; + case "cc-by-nc-nd-4.0": + return "https://creativecommons.org/licenses/by-nc-nd/4.0/"; + case "CC0-1.0": + return "https://creativecommons.org/publicdomain/zero/1.0/"; + default: + return ""; + } + } + + getLicenseName(license_type: string): string { + switch (license_type) { + case "cc-by-4.0": + return "Attribution 4.0 International (CC BY 4.0)"; + case "cc-by-sa-4.0": + return "Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)"; + case "cc-by-nc-4.0": + return "Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)"; + case "cc-by-nc-sa-4.0": + return "Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)"; + case "cc-by-nd-4.0": + return "Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)"; + case "cc-by-nc-nd-4.0": + return "Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)"; + case "CC0-1.0": + return "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication"; + default: + return "Unknown License"; + } + } + render() { const { error, hasFullyLoaded, image_event, displayname, avatar_url } = this.state; @@ -191,10 +233,11 @@ class Post extends PureComponent<Props, State> { <div className="grow bg-[#f8f8f8] dark:bg-[#06070D] min-h-[25rem] flex flex-col items-center"> <div className="flex flex-col items-start lg:min-w-[60rem] lg:w-[60rem]"> <h1 className="my-4 text-6xl text-gray-900 dark:text-gray-200 font-bold">{post_title}</h1> - <h3 className="cursor-pointer mt-0 mb-4 text-l text-gray-900 dark:text-gray-200 font-normal inline-flex"> + <h3 className="cursor-pointer mt-0 mb-4 text-xl text-gray-900 dark:text-gray-200 font-normal inline-flex"> {avatar_url ? <span className="block object-cover rounded-full mr-4"> <img className="object-cover rounded-full" src={this.context.client.downloadLink(avatar_url)!} height="24" width="24" alt={displayname} title={displayname} /> </span> : undefined} <Link href={"/profile/" + encodeURIComponent(image_event.sender)} passHref><span className='hover:text-teal-400'>{displayname}</span></Link> </h3> + {isImageEvent(image_event) ? (image_event.content['matrixart.license'] ? <h3 className='cursor-pointer mt-0 mb-4 text-l text-gray-600 dark:text-gray-400 font-normal'>License: <a href={this.getLicenseUrl(image_event.content['matrixart.license'])} title={this.getLicenseName(image_event.content['matrixart.license'])}>{this.getLicenseName(image_event.content['matrixart.license'])}</a></h3> : undefined) : undefined} {isImageGalleryEvent(image_event) ? this.renderImageGalleryTags(image_event) : (isImageEvent(image_event) ? this.renderSingleImageTags(image_event) : <div key={(image_event as MatrixEventBase).event_id + "tags"}></div>)} </div> </div>