feat(fullstack): Add contact form
This commit is contained in:
13
legalconsenthub/app/composables/contact/useContact.ts
Normal file
13
legalconsenthub/app/composables/contact/useContact.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { useContactApi } from './useContactApi'
|
||||
|
||||
export function useContact() {
|
||||
const { sendContactMessage: sendContactMessageApi } = useContactApi()
|
||||
|
||||
async function sendContactMessage(subject: string, message: string): Promise<void> {
|
||||
return sendContactMessageApi({ subject, message })
|
||||
}
|
||||
|
||||
return {
|
||||
sendContactMessage
|
||||
}
|
||||
}
|
||||
24
legalconsenthub/app/composables/contact/useContactApi.ts
Normal file
24
legalconsenthub/app/composables/contact/useContactApi.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { ContactApi, Configuration, type ContactMessageDto } from '~~/.api-client'
|
||||
import { cleanDoubleSlashes, withoutTrailingSlash } from 'ufo'
|
||||
import { wrappedFetchWrap } from '~/utils/wrappedFetch'
|
||||
|
||||
export function useContactApi() {
|
||||
const appBaseUrl = useRuntimeConfig().app.baseURL
|
||||
const { serverApiBasePath, clientProxyBasePath } = useRuntimeConfig().public
|
||||
|
||||
const basePath = withoutTrailingSlash(
|
||||
cleanDoubleSlashes(import.meta.client ? appBaseUrl + clientProxyBasePath : clientProxyBasePath + serverApiBasePath)
|
||||
)
|
||||
|
||||
const contactApiClient = new ContactApi(
|
||||
new Configuration({ basePath, fetchApi: wrappedFetchWrap(useRequestFetch()) })
|
||||
)
|
||||
|
||||
async function sendContactMessage(contactMessageDto: ContactMessageDto): Promise<void> {
|
||||
return contactApiClient.sendContactMessage({ contactMessageDto })
|
||||
}
|
||||
|
||||
return {
|
||||
sendContactMessage
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user