-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #65 from nyomansunima/64-feature-contact
✅ fix: add all feature
- Loading branch information
Showing
35 changed files
with
741 additions
and
175 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
<template> | ||
<footer | ||
class="flex flex-col border-t border-t-gray-100 dark:border-t-gray-900" | ||
> | ||
<!-- menus --> | ||
<div class="grid grid-cols-4 container mx-auto px-28 mt-32"> | ||
<div | ||
class="flex flex-col col-span-1" | ||
v-for="section in footerMenus" | ||
:key="section.headline" | ||
> | ||
<h4 class="flex text-2xl">{{ section.headline }}</h4> | ||
<ul class="flex flex-col gap-5 mt-10"> | ||
<li class="flex text-lg" v-for="menu in section.menus"> | ||
<NuxtLink :to="menu.link">{{ menu.label }}</NuxtLink> | ||
</li> | ||
</ul> | ||
</div> | ||
</div> | ||
|
||
<!-- credit --> | ||
<div | ||
class="flex items-center px-10 py-6 border-t border-t-gray-100 dark:border-t-gray-900 mt-60" | ||
> | ||
<span>Copyright © {{ currentYear }} - Alright Reserved</span> | ||
|
||
<div class="flex flex-1"></div> | ||
|
||
<div class="flex items-center"> | ||
<ul class="flex list-none gap-10"> | ||
<li | ||
class="transition-all duration-300 hover:-translate-y-1 cursor-pointer" | ||
v-for="social in socials" | ||
:key="social.label" | ||
> | ||
<NuxtLink | ||
:to="social.url" | ||
external | ||
target="_blank" | ||
class="flex justify-center items-center text-2xl" | ||
> | ||
<i class="" :class="social.icon"></i> | ||
</NuxtLink> | ||
</li> | ||
</ul> | ||
</div> | ||
</div> | ||
</footer> | ||
</template> | ||
|
||
<script setup lang="ts"> | ||
import { socials } from '~/contents/social.json' | ||
import { footer as footerMenus } from '~/contents/menu.json' | ||
const currentYear = computed(() => new Date().getFullYear()) | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<template> | ||
<header | ||
class="flex items-center fixed z-10 top-0 inset-x-0 bg-white dark:bg-black px-10 py-3 border-b border-gray-100 dark:border-b-gray-900" | ||
> | ||
<!-- brands --> | ||
<NuxtLink | ||
to="/" | ||
class="flex items-center h-10 w-10 transition-all duration-300 hover:scale-95 dark:bg-white rounded-full dark:p-2" | ||
> | ||
<NuxtImg src="/images/logo.png" class="flex w-full h-full" /> | ||
</NuxtLink> | ||
|
||
<!-- menus --> | ||
<div class="flex flex-1"></div> | ||
<div class="flex mr-16"> | ||
<ul class="flex items-center gap-10"> | ||
<li | ||
v-for="menu in header" | ||
:key="menu.path" | ||
class="font-medium transition-all duration-300 hover:-translate-y-1" | ||
> | ||
<NuxtLink class="" :to="menu.path">{{ menu.label }}</NuxtLink> | ||
</li> | ||
</ul> | ||
</div> | ||
|
||
<IconButton><i class="fi fi-rr-box-heart text-xl"></i></IconButton> | ||
</header> | ||
</template> | ||
|
||
<script setup lang="ts"> | ||
import { header } from '~/contents/menu.json' | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<template> | ||
<div class="flex flex-col w-full"> | ||
<label :for="`${name}-input`" v-show="label" class="flex">{{ | ||
label | ||
}}</label> | ||
<div | ||
class="flex w-full py-5 items-center bg-white dark:bg-black min-h-[200px] rounded-3xl ring-1 ring-gray-100 dark:ring-gray-800 focus-within:ring-2 focus-within:ring-black focus-within:dark:ring-gray-700 transition-all duration-300 px-5" | ||
> | ||
<i :class="preIcon" v-show="preIcon"></i> | ||
<textarea | ||
v-model="value" | ||
:name="name" | ||
:id="`${name}-input`" | ||
:placeholder="placeholder" | ||
class="flex h-full flex-1 bg-transparent border-transparent outline-transparent ring-transparent focus:ring-transparent focus:border-transparent focus:outline-transparent text-base text-black dark:text-gray-400 placeholder:text-gray-600" | ||
></textarea> | ||
<i :class="sufIcon" class="dark:text-gray-600" v-show="sufIcon"></i> | ||
</div> | ||
|
||
<span v-show="errorMessage" class="flex ml-3 mt-5">{{ errorMessage }}</span> | ||
</div> | ||
</template> | ||
|
||
<script setup lang="ts"> | ||
import { useField } from 'vee-validate' | ||
import { BaseInputProps } from '~/types/component' | ||
interface TextAreaInputProps extends BaseInputProps {} | ||
const props = defineProps<TextAreaInputProps>() | ||
const { errorMessage, value, setValue } = useField(() => props.name) | ||
if (props.value) { | ||
setValue(props.value) | ||
} | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<template> | ||
<form @submit.prevent="saveForm" class="flex flex-col"> | ||
<slot /> | ||
</form> | ||
</template> | ||
|
||
<script setup lang="ts"> | ||
import { FormContext } from 'vee-validate' | ||
interface FormInputProps { | ||
context: FormContext | ||
} | ||
const { | ||
context: { handleSubmit } | ||
} = defineProps<FormInputProps>() | ||
interface FormInputEmits { | ||
(e: 'save', formData: any): void | ||
} | ||
const emit = defineEmits<FormInputEmits>() | ||
const saveForm = handleSubmit((formData) => { | ||
emit('save', formData) | ||
}) | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
import { defu } from 'defu' | ||
import { UseFetchOptions } from 'nuxt/app' | ||
|
||
/** | ||
* # useBrevo | ||
* | ||
* the brevo client to connect with the | ||
* brevo API. | ||
* | ||
* @param url the url to fething in brevo API | ||
* @param options | ||
* @returns AsyncData | ||
*/ | ||
export function useBrevo<T>(url: string, options: UseFetchOptions<T> = {}) { | ||
const baseUrl = `https://api.brevo.com/v3` | ||
const { | ||
public: { brevoApiKey } | ||
} = useRuntimeConfig() | ||
|
||
const defaults: UseFetchOptions<T> = { | ||
baseURL: baseUrl, | ||
key: url, | ||
headers: { | ||
'api-key': brevoApiKey | ||
} | ||
} | ||
const params = defu(options, defaults) | ||
return useFetch(url, params) | ||
} |
Oops, something went wrong.
446cc01
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Successfully deployed to the following URLs:
personal-site-studio – ./apps/studio
personal-site-studio-nyomansunima.vercel.app
studio.nyomansunima.vercel.app
studio.nyomansunima.com
personal-site-studio-git-main-nyomansunima.vercel.app
446cc01
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Successfully deployed to the following URLs:
personal-site-web-s4mg – ./apps/web
personal-site-web-s4mg-nyomansunima.vercel.app
personal-site-web-s4mg-git-main-nyomansunima.vercel.app
personal-site-web-s4mg.vercel.app