Skip to content

Instantly share code, notes, and snippets.

@leanazulyoro
leanazulyoro / server.js
Last active February 16, 2024 20:49
Next.js SSR Cache using LRU Cache
const express = require('express')
const next = require('next')
const Cache = require('lru-cache');
const compression = require('compression')
const port = parseInt(process.env.PORT, 10) || 3000
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
@leanazulyoro
leanazulyoro / codeShareMixins.js
Created August 22, 2019 12:30
For medium article: react code sharing history. Mixins
var SetIntervalMixin = {
componentWillMount: function() {
this.intervals = [];
},
setInterval: function() {
this.intervals.push(setInterval.apply(null, arguments));
},
@leanazulyoro
leanazulyoro / modals.js
Created July 16, 2019 19:48
Custom hooks implementing modals
import React, { useState } from 'react';
import TrackingModalContainer from '@containers/TrackingModal/TrackingModal';
import RevisionModalContainer from '@containers/RevisionModal/RevisionModal';
export const useTrackingModal = () => {
const [newStatus, setNewStatus] = useState(null);
const [isTrackingModalOpen, setTrackingModalOpen] = useState(false);
const [trackingLead, setTrackingLead] = useState(null);
const handleLeadStatusChange = (lead, value) => {
@leanazulyoro
leanazulyoro / LeadListWithRevisionAndTrackingModals.js
Last active July 16, 2019 20:40
LeadListWithModals using useState()
import React, { useState } from 'react';
const LeadListWithModals = ({ leads }) => {
const [isRevisionModalOpen, setRevisionModalOpen] = useState(false);
const [leadInRevision, setLeadInRevision] = useState(null);
const [newStatus, setNewStatus] = useState(null);
const [isTrackingModalOpen, setTrackingModalOpen] = useState(false);
const [trackingLead, setTrackingLead] = useState(null);
@leanazulyoro
leanazulyoro / LeadListWithRevisionModal.js
Last active July 16, 2019 20:38
LeadListWithRevisionModal
import React, { useState } from 'react';
const LeadListWithRevisionModal = ({ leads }) => {
const [isRevisionModalOpen, setRevisionModalOpen] = useState(false);
const [leadInRevision, setLeadInRevision] = useState(null);
const handleRevisionRequest = (lead) => {
setLeadInRevision(lead);
setRevisionModalOpen(!isRevisionModalOpen);
};
@leanazulyoro
leanazulyoro / LeadListWithModals.js
Last active July 16, 2019 20:43
LeadListWithModals refactored with custom hooks
import React from 'react';
import { useRevisionModal, useTrackingModal } from '../../hooks/modals';
const LeadListWithModals = ({ leads }) => {
const [handleRevisionRequest, revisionModal] = useRevisionModal();
const [handleLeadStatusChange, trackingModal] = useTrackingModal();
return (
<>
<LeadList
leads={leads}