Skip to content

Instantly share code, notes, and snippets.

View guillaumeduhan's full-sized avatar
💭
Vue 3, Next & Supabase!

Guillaume Duhan guillaumeduhan

💭
Vue 3, Next & Supabase!
View GitHub Profile
@guillaumeduhan
guillaumeduhan / app.js
Created February 7, 2021 15:56
Wordpress Plugin Development with Vue.js - Multiples instances
function createNewInstance(myInstanceId) {
Vue.component('button-counter', {
data: function () {
return {
count: 0
}
},
template: '<button v-on:click="count++">You clicked me {{ count }} times.</button>'
})
new Vue({ el: '#instance-' + myInstanceId })
@guillaumeduhan
guillaumeduhan / firebase.js
Last active March 29, 2021 16:30
firebase_services
import firebase from 'firebase/app'
import 'firebase/auth'
import 'firebase/firestore'
import 'firebase/database'
import moment from 'moment'
function CREATE_DOCUMENT(collection, obj) {
return new Promise((resolve, reject) => {
firebase
.firestore()
@guillaumeduhan
guillaumeduhan / main.js
Created April 30, 2021 10:46
Vue + Firebase: how to guard routes?
import { createApp } from "vue";
import { createWebHistory, createRouter } from "vue-router";
import firebase from "firebase/app";
import "firebase/analytics";
import "firebase/auth";
import "firebase/firestore";
var firebaseConfig = {
apiKey: process.env.VUE_APP_API_KEY,
authDomain: process.env.VUE_APP_AUTH_DOMAIN,
@guillaumeduhan
guillaumeduhan / App.vue
Created June 17, 2021 17:00
Vue 3: declare a reactive property
<template>
<div>
<input v-model.lazy="name" />
<p>{{ name }}</p>
</div>
</template>
<script>
import { reactive, toRefs } from "vue";
@guillaumeduhan
guillaumeduhan / App.vue
Created June 17, 2021 17:07
Vue 3: computed
<template>
<div>
<input v-model.lazy="name" />
<p>{{ msg }}</p>
</div>
</template>
<script>
import { reactive, toRefs, computed } from "vue";
@guillaumeduhan
guillaumeduhan / App.vue
Created June 17, 2021 17:15
Vue 3: watch
<template>
<div>
<input v-model="name" />
<p>{{ msg }}</p>
</div>
</template>
<script>
import { reactive, toRefs, computed, watch } from "vue";
@guillaumeduhan
guillaumeduhan / App.vue
Created June 17, 2021 17:28
Vue 3: props
<template>
<div>
<p>{{ msg }}</p>
</div>
</template>
<script>
import { reactive, toRefs } from "vue";
export default {
@guillaumeduhan
guillaumeduhan / app.js
Created March 10, 2022 14:11
Stripe API create-payment-intent
require("dotenv").config()
const express = require('express')
const app = express()
const cors = require('cors')
const bodyParser = require('body-parser')
const PORT = process.env.PORT || 4000
app.use(cors());
app.use(express.json());
app.use(bodyParser.json(), cors())
@guillaumeduhan
guillaumeduhan / payment.js
Created March 11, 2022 11:47
Stripe get payment intent
async getPaymentIntent () { // get the payment intent from API
const data = {
amount: this.formatStripePrice(this.getCurrentCoaching.price),
currency: 'eur'
}
this.isLoading = true
await this.$api.payment.getPaymentIntent(data, process.env.NODE_ENV) // call API, env is to switch dev/staging/prod
.then(({ client_secret }) => {
this.clientSecret = client_secret
this.buildCard() // build front module payment
{
id: { type: String, unique: true, required: true },
domain: Array,
subdomain: { type: String },
file_external_id: Array,
contract_external_id: Array,
visualFileName: { type: String, default: "document.pdf" }, // n'a pas lieu d'être, nom + type généré à la volée
name: { type: String, required: true },
code: { type: String, default: "" }, // internal unique name for file upload ????
desc: { type: String },