Skip to content

Instantly share code, notes, and snippets.

@douggrubba
douggrubba / .prettierrc
Created March 31, 2022 13:31
.prettierrc
{
"semi": false,
"tabWidth": 2,
"useTabs": false,
"singleQuote": true,
"arrowParens": "avoid",
"trailingComma": "none",
"jsxBracketSameLine": false,
"vue-indent-script-and-style": true
}
@douggrubba
douggrubba / ProfileButton.vue
Created August 28, 2021 17:10
ProfileButton.vue
<template>
<a href="#" class="flex-shrink-0 w-full group block">
<div class="flex items-center">
<div>
<avatar
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixqx=uNthX00zQD&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
alt="tom cook"
/>
</div>
<div class="ml-3">
@douggrubba
douggrubba / HomeScreen.vue
Created August 28, 2021 17:07
HomeScreen.vue
<template>
<div class="flex flex-col">
<highlights title="Last 30 Days" />
<div class="flex flex-row">
<activities title="Activities" />
<appointments title="Upcoming Appointments" />
</div>
<div class="flex flex-col p-12">
@douggrubba
douggrubba / main.js
Created August 28, 2021 16:59
main.js
import { createApp, useSSRContext } from 'vue'
import DefaultLayout from './layouts/DefaultLayout.vue'
import './assets/index.css'
import store from './store'
import router from './router'
createApp(DefaultLayout).use(store).use(router).mount('#app')
@douggrubba
douggrubba / user.js
Created August 28, 2021 15:58
user.js
// initial state
const state = () => ({
user: {}
})
// getters
const getters = {
getUser: state => {
return state.user
}
@douggrubba
douggrubba / index.js
Last active August 28, 2021 15:49
Store index to load our modules
import { createStore, createLogger } from 'vuex'
import user from './modules/user'
const debug = process.env.NODE_ENV !== 'production'
export default createStore({
modules: {
user
},
strict: debug,
<template>
<div class="flex flex-row bg-gray-100">
<!-- Sidebar -->
<div class="flex flex-col h-0 border-r border-gray-200 bg-white w-64 min-h-screen h-screen pt-12">
<div class="flex-1 flex flex-col pt-5 pb-4 overflow-y-auto">
<div class="flex items-center flex-shrink-0 mx-auto">
<logo />
</div>
<nav class="mt-5 flex-1 px-2 bg-white space-y-1" aria-label="Sidebar">
<router-link to="/">
import { createApp, useSSRContext } from 'vue'
import DefaultLayout from './layouts/DefaultLayout.vue'
import './assets/index.css'
import router from '../src/router'
createApp(DefaultLayout).use(router).mount('#app')
<template>
<div class="flex flex-col">
<highlights title="Last 30 Days" />
<div class="flex flex-row">
<activities title="Activities" />
<appointments title="Upcoming Appointments" />
</div>
<div class="flex flex-col p-12">
<template>
<div class="flex flex-col">
<h2 class="text-4xl p-6">Appointments</h2>
</div>
</template>
<script>
export default {
name: 'appointments-screen'
}