Skip to content

Commit

Permalink
feat: add about modal
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-heimbuch committed Sep 4, 2024
1 parent 8c3a0f2 commit e4c3e1d
Show file tree
Hide file tree
Showing 8 changed files with 149 additions and 8 deletions.
1 change: 1 addition & 0 deletions client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"reselect": "5.1.0",
"query-string": "9.0.0",
"@heroicons/vue": "2.1.3",
"@headlessui/vue": "1.7.22",
"vue-i18n": "9.10.2",
"floating-vue": "5.2.2"
},
Expand Down
26 changes: 26 additions & 0 deletions client/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

65 changes: 65 additions & 0 deletions client/src/components/modal/Modal.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<template>
<div>
<TransitionRoot as="template" :show="visible">
<Dialog class="relative z-50" @close="emit('close')">
<TransitionChild
as="template"
enter="ease-out duration-300"
enter-from="opacity-0"
enter-to="opacity-100"
leave="ease-in duration-200"
leave-from="opacity-100"
leave-to="opacity-0"
>
<div class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity" />
</TransitionChild>

<div class="fixed inset-0 z-10 w-screen overflow-y-auto">
<div
class="flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0"
>
<TransitionChild
as="template"
enter="ease-out duration-300"
enter-from="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
enter-to="opacity-100 translate-y-0 sm:scale-100"
leave="ease-in duration-200"
leave-from="opacity-100 translate-y-0 sm:scale-100"
leave-to="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
>
<DialogPanel
class="relative transform overflow-hidden rounded-lg bg-white px-4 pb-4 pt-5 text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6"
>
<div class="absolute right-0 top-0 hidden pr-4 pt-4 sm:block">
<button
type="button"
class="rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2"
@click="emit('close')"
>
<span class="sr-only">Close</span>
<XMarkIcon class="h-6 w-6" aria-hidden="true" />
</button>
</div>
<div class="sm:flex sm:items-start">
<div class="mt-3 text-center sm:ml-4 sm:mt-0 sm:text-left">
<div class="mt-2">
<slot></slot>
</div>
</div>
</div>
</DialogPanel>
</TransitionChild>
</div>
</div>
</Dialog>
</TransitionRoot>
</div>
</template>

<script setup lang="ts">
import { Dialog, DialogPanel, TransitionChild, TransitionRoot } from '@headlessui/vue';
import { XMarkIcon } from '@heroicons/vue/24/outline';
defineProps<{ visible: boolean; }>();
const emit = defineEmits(['close']);
</script>
2 changes: 1 addition & 1 deletion client/src/i18n/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export default {
description:
'In den folgenden Schritten kannst Deinen bestehenden Podcast zu Podlove umziehen. Gib einfach die RSS-Feed-URL deines aktuellen Podcasts unten ein. Die RSS-Feed-URL ist ein spezieller Link, der den Inhalt deines Podcasts zusammenfasst und es Plattformen ermöglicht, diesen Inhalt zu lesen und anzuzeigen.',
help: 'Die RSS-Feed-URL findest Du normalerweise in den Einstellungen oder im Dashboard Deiner aktuellen Hosting-Plattform. Hinweise, wie Du die RSS-Feed-URL bei einzelnen Hosting-Plattformen finden kannst, haben wir und die Community in diesem <a class="support-link" href="https://sendegate.de/t/podcast-feed-bei-hosting-plattformen-finden-wiki/17116">Post</a> im Sendegate zusammengefasst.',
'feed-url': 'Podcast feed url',
'feed-url': 'Podcast feed URL',
'feed-url-placeholder': 'Podcast-Feed-URL eingeben',
'success-head': 'Super!',
'success-info':
Expand Down
2 changes: 1 addition & 1 deletion client/src/i18n/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ export default {
description:
"Let's get started on bringing your existing podcast over to Podlove. Simply enter the RSS feed URL of your current podcast below.",
help: 'You can usually find the RSS feed URL in the settings or dashboard of your current hosting platform. For more detailed instructions on finding your RSS feed URL with popular hosting platforms, check out this <a class="support-link" href="https://sendegate.de/t/podcast-feed-bei-hosting-plattformen-finden-wiki/17116">post</a> in the Sendegate.',
'feed-url': 'Podcast feed url',
'feed-url': 'Podcast feed URL',
'feed-url-placeholder': 'Enter the feed url',
'success-head': 'Success!',
'success-info':
Expand Down
2 changes: 2 additions & 0 deletions client/src/pages/onboarding/Onboarding.vue
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
:class="{ 'pt-[80px]': stepsVisible }"

>
<about />
<component :is="stepComponents[state.current.name]" />
</div>
<div class="fixed bottom-0 flex justify-between w-full px-4 sm:px-6 xl:pl-6 py-2 bg-white z-50">
Expand All @@ -33,6 +34,7 @@ import { useI18n } from 'vue-i18n';
import { selectors } from '../../store';
import Steps from './components/Steps.vue';
import About from './components/About.vue';
import PodloveButton from '../../components/button/Button.vue';
import NotificationsFeature from '../../features/notifications/Notifications.vue';
Expand Down
53 changes: 53 additions & 0 deletions client/src/pages/onboarding/components/About.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<template>
<div>
<modal :visible="visible" @close="visible = false">
<div class="font-light">
<h3 class="text-lg font-semibold leading-6 text-gray-900">About</h3>
<div class="mb-2">
<h4 class="text-base font-bold leading-6 text-gray-800">Content and Service</h4>
<p>Service provided by podlove.org, represented by</p>
<ul class="mb-2 list-disc ml-4">
<li>Martin Fischer</li>
<li>Alexander Heimbuch</li>
<li>Eric Teubert</li>
<li>Dirk Schumann</li>
</ul>

<p>
Responsible for the content according to § 55 Abs. 2 RStV: Eric Teubert<br />
Hafenstr. 5C<br />
04179 Leipzig<br />
</p>
</div>
<div class="mb-2">
<h4 class="text-base font-bold leading-6 text-gray-800">Contact</h4>
<p>Mail: [email protected]</p>
</div>
<div class="mb-2">
<h4 class="text-base font-bold leading-6 text-gray-800">Privacy and Data Protection</h4>
<p>
This service is hosted in Germany, we don't collect or store any information, neither do
we send any of your data to other services.
</p>
</div>
<div class="mb-2">
<h4 class="text-base font-bold leading-6 text-gray-800">Resources</h4>
<p>
Illustrations by
<a class="text-blue-400 hover:text-blue-500" href="https://storyset.com">storyset</a>
</p>
</div>
</div>
</modal>
<button class="absolute right-2" @click="visible = true">
<InformationCircleIcon class="w-6 text-gray-500 hover:text-gray-700" />
</button>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue';
import { InformationCircleIcon } from '@heroicons/vue/24/outline';
import Modal from '../../../components/modal/Modal.vue';
const visible = ref(false);
</script>
6 changes: 0 additions & 6 deletions package-lock.json

This file was deleted.

0 comments on commit e4c3e1d

Please sign in to comment.