Skip to content

Instantly share code, notes, and snippets.

@b4n92uid
b4n92uid / DateField.vue
Last active August 17, 2021 22:48
[Vuetify] DateField
<template>
<div>
<v-text-field
class="v-date-field"
:class="{ 'v-date-field--rounded': rounded }"
:value="dateFormated"
prepend-inner-icon="mdi-calendar-blank"
readonly
@click="open"
:disabled="disabled"
@b4n92uid
b4n92uid / MessageBox.vue
Last active November 9, 2021 21:46
[Vuetify] MessageBox
<template>
<v-dialog
v-model="isOpen"
persistent
max-width="500px"
transition="dialog-transition"
>
<v-card>
<v-card-text class="text-center pt-5" v-if="params.icon">
<v-icon ref="icon" :color="params.iconColor" size="91">
@b4n92uid
b4n92uid / DateMixin.js
Last active July 12, 2022 19:54
[Vue] DateMixin
import { format, parseISO, formatDistanceToNow } from "date-fns";
import { fr, arDZ } from "date-fns/locale";
const locales = { fr, ar: arDZ };
function formatDate(str) {
if (typeof str === "string") str = parseISO(str);
return format(str, "dd/MM/yyyy");
}
@b4n92uid
b4n92uid / CurrencyMixin.js
Last active August 17, 2021 22:17
[Vue] CurrencyMixin
import currency from "currency.js";
function formatCurrency(value, formatWithSymbol = true) {
return currency(value, {
symbol: "DA",
pattern: "# !",
formatWithSymbol,
separator: " ",
decimal: ",",
precision: 0,
@b4n92uid
b4n92uid / Notifier.vue
Created January 3, 2020 16:50
[Vuetify] Notifier
<template>
<v-snackbar
:timeout="4000"
left
bottom
:value="!empty"
@input="pop"
:color="current.type"
light
>
@b4n92uid
b4n92uid / markdown.js
Last active August 17, 2021 22:17
[Vue] MarkdownPlugin
import MarkdownIt from "markdown-it";
const markdown = new MarkdownIt({
breaks: true,
xhtmlOut: true
});
export default {
install(Vue) {
Vue.filter("markdown", function(text) {
@b4n92uid
b4n92uid / propertyAccess.ts
Last active August 17, 2021 22:49
[Apollo] propertyAccess
function propertyAccess(object, key) {
if (isFunction(object[key])) return object[key]();
if (object[key] instanceof Date) return object[key].toISOString();
if (key in object) return object[key];
const conn = getConnection();
if (conn.hasMetadata(object.constructor.name)) {
@b4n92uid
b4n92uid / Swiper.vue
Last active August 17, 2021 22:50
[Vuetify] Swiper
<template>
<!-- Slider main container -->
<div
class="ok-swiper"
:class="{
'--fill-height': fillHeight,
'--pagination': pagination,
'--navigation': navigation,
'--navigation-ex': navigationEx
}"
@b4n92uid
b4n92uid / sleep.ts
Created August 26, 2020 12:07
Promised sleep
export default function sleep(ms: number): Promise<void> {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
}
@b4n92uid
b4n92uid / Logger.ts
Last active August 17, 2021 22:20
[Node] WinstonLogger
import "winston-daily-rotate-file";
import { join } from "path";
import { createLogger, format, transports } from "winston";
const serverFormat = format.printf(info => {
return `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`;
});
function createCustomLogger(label: string, level: string) {