aboutsummaryrefslogtreecommitdiff
path: root/src/site/components/home
diff options
context:
space:
mode:
authorPitu <[email protected]>2021-01-04 01:04:20 +0900
committerPitu <[email protected]>2021-01-04 01:04:20 +0900
commitfcd39dc550dec8dbcb8325e07e938c5024cbc33d (patch)
treef41acb4e0d5fd3c3b1236fe4324b3fef9ec6eafe /src/site/components/home
parentCreate FUNDING.yml (diff)
parentchore: update todo (diff)
downloadhost.fuwn.me-fcd39dc550dec8dbcb8325e07e938c5024cbc33d.tar.xz
host.fuwn.me-fcd39dc550dec8dbcb8325e07e938c5024cbc33d.zip
Merge branch 'dev'
Diffstat (limited to 'src/site/components/home')
-rw-r--r--src/site/components/home/links/Links.vue142
1 files changed, 142 insertions, 0 deletions
diff --git a/src/site/components/home/links/Links.vue b/src/site/components/home/links/Links.vue
new file mode 100644
index 0000000..05915b9
--- /dev/null
+++ b/src/site/components/home/links/Links.vue
@@ -0,0 +1,142 @@
+<template>
+ <div class="links">
+ <a
+ href="https://github.com/WeebDev/chibisafe"
+ target="_blank"
+ class="link">
+ <header class="bd-footer-star-header">
+ <h4 class="bd-footer-title">GitHub</h4>
+ <p class="bd-footer-subtitle">Deploy your own chibisafe</p>
+ </header>
+ </a>
+ <div
+ v-if="loggedIn"
+ class="link"
+ @click="createShareXThing">
+ <header class="bd-footer-star-header">
+ <h4 class="bd-footer-title">
+ ShareX
+ </h4>
+ <p class="bd-footer-subtitle">
+ Upload from your Desktop
+ </p>
+ </header>
+ </div>
+ <a
+ href="https://chrome.google.com/webstore/detail/lolisafe-uploader/enkkmplljfjppcdaancckgilmgoiofnj"
+ target="_blank"
+ class="link">
+ <header class="bd-footer-star-header">
+ <h4 class="bd-footer-title">Extension</h4>
+ <p class="bd-footer-subtitle">Upload from any website</p>
+ </header>
+ </a>
+ <router-link
+ to="/faq"
+ class="link">
+ <header class="bd-footer-star-header">
+ <h4 class="bd-footer-title">
+ FAQ
+ </h4>
+ <p class="bd-footer-subtitle">
+ We got you covered
+ </p>
+ </header>
+ </router-link>
+ </div>
+</template>
+<script>
+import { saveAs } from 'file-saver';
+
+export default {
+ computed: {
+ loggedIn() {
+ return this.$store.state.auth.loggedIn;
+ }
+ },
+ methods: {
+ createShareXThing() {
+ const sharexFile = `{
+ "Name": "${this.$store.state.config.serviceName}",
+ "DestinationType": "ImageUploader, FileUploader",
+ "RequestType": "POST",
+ "RequestURL": "${location.origin}/api/upload",
+ "FileFormName": "files[]",
+ "Headers": {
+ "authorization": "Bearer ${this.$store.state.token}",
+ "accept": "application/vnd.chibisafe.json"
+ },
+ "ResponseType": "Text",
+ "URL": "$json:url$",
+ "ThumbnailURL": "$json:url$"
+ }`;
+ const sharexBlob = new Blob([sharexFile], { type: 'application/octet-binary' });
+ saveAs(sharexBlob, `${location.hostname}.sxcu`);
+ }
+ }
+};
+</script>
+<style lang="scss" scoped>
+ @import '~/assets/styles/_colors.scss';
+ .links {
+ margin: 7rem 0 3rem 0;
+ align-items: stretch;
+ display: flex;
+ justify-content: space-between;
+
+ div.link { cursor: pointer; }
+ .link {
+ background: #0000002e;
+ border: 1px solid #00000061;
+ display: block;
+ width: calc(25% - 2rem);
+ border-radius: 6px;
+ box-shadow: 0 1.5rem 1.5rem -1.25rem rgba(10,10,10,.05);
+ transition-duration: 86ms;
+ transition-property: box-shadow,-webkit-transform;
+ transition-property: box-shadow,transform;
+ transition-property: box-shadow,transform,-webkit-transform;
+ will-change: box-shadow,transform;
+
+ header.bd-footer-star-header {
+ padding: 1.5rem;
+
+ &:hover .bd-footer-subtitle { color: $textColorHighlight; }
+
+ h4.bd-footer-title {
+ color: $textColorHighlight;
+ font-size: 1.5rem;
+ line-height: 1.25;
+ margin-bottom: .5rem;
+ transition-duration: 86ms;
+ transition-property: color;
+ font-weight: 700;
+ }
+
+ p.bd-footer-subtitle {
+ color: $textColor;
+ margin-top: -.5rem;
+ transition-duration: 86ms;
+ transition-property: color;
+ font-weight: 400;
+ }
+ }
+
+ &:hover {
+ box-shadow: 0 3rem 3rem -1.25rem rgba(10,10,10,.1);
+ transform: translateY(-.5rem);
+ }
+ }
+ }
+
+ @media screen and (max-width: 768px) {
+ .links {
+ display: block;
+ padding: 0px 2em;
+ .link {
+ width: 100%;
+ margin-bottom: 1.5em;
+ }
+ }
+ }
+</style>