Skip to content

Instantly share code, notes, and snippets.

View diasjuniorr's full-sized avatar
🏠
Working from home

Dias Junior diasjuniorr

🏠
Working from home
View GitHub Profile
import { useState, useEffect } from 'react'
const UseLocalStorageState = (key: string, defaultValue: any) => {
const [state, setState] = useState(() => {
let val
try {
val = JSON.parse(window.localStorage.getItem(key) || String(defaultValue))
} catch (error) {
val = defaultValue
}
@diasjuniorr
diasjuniorr / endpointGet.ts
Last active June 9, 2021 15:14
Next.js route handler
// pages/api/endpointGet.ts
const handler = async (req: NextApiRequest, res: NextApiResponse) => {
const { method, headers, query } = req
if (method === 'GET') {
console.log("inside the handler")
return res.status(200).json({})
}
@diasjuniorr
diasjuniorr / auth.ts
Last active June 10, 2021 02:43
Next.js high-order function middlewware
// util/middleware/auth.ts
import { NextApiRequest, NextApiResponse } from 'next'
import { User } from './models/user'
// so we can add the user info to the req object
type NextApiRequestWithUser = NextApiRequest & {
user: string
}
export const auth = (handler: (req: NextApiRequestWithUser, res: NextApiResponse) => void) => {
@diasjuniorr
diasjuniorr / endpointGet.ts
Last active June 9, 2021 23:46
Next.js middleware implementation
// pages/api/endpointGet.ts
import { auth } from "../util/middleware/auth"
// so we can add the user info to the req object
type NextApiRequestWithUser = NextApiRequest & {
user: string
}
const handler = async (req: NextApiRequestWithUser, res: NextApiResponse) => {
const { method, headers, query, user } = req
@diasjuniorr
diasjuniorr / endpointGet.ts
Last active June 9, 2021 21:26
Next.js middleware implementation
// pages/api/endpointGet.ts
// ...
export default otherrMiddleware(auth(handler))
@diasjuniorr
diasjuniorr / applicantsGet.test.ts
Created June 11, 2021 15:02
Supertest query params
import request from 'supertest'
import http, { IncomingMessage, ServerResponse } from 'http'
import { apiResolver } from 'next/dist/next-server/server/api-utils'
import handler from '../applicantsGet'
describe('testing request query params', () => {
// mock for `apiResolver`'s 5th parameter to please TS
const apiPreviewPropsMock = {
previewModeId: 'id',
CREATE VIEW HOUR_RATE_BI (
WITH
hourrate
AS
(
SELECT (jsonb_each(config.value)).key AS date,
(jsonb_each(config.value)).value AS rate
FROM config
WHERE ((config.key)
::text='price/hour_rate'::text)
Argument of type '({ req, res, }: GetServerSidePropsContext<ParsedUrlQuery, PreviewData>) => Promise<{ props: { user: User; data?: undefined; }; } | { ...; }>' is not assignable to parameter of type '(context: GetServerSidePropsContext<ParsedUrlQuery, PreviewData>) => GetServerSidePropsResult<{ user: User; data?: undefined; }> | Promise<...>'.
Type 'Promise<{ props: { user: User; data?: undefined; }; } | { props: { user: User | undefined; data: string; }; }>' is not assignable to type 'GetServerSidePropsResult<{ user: User; data?: undefined; }> | Promise<GetServerSidePropsResult<{ user: User; data?: undefined; }>>'.
Type 'Promise<{ props: { user: User; data?: undefined; }; } | { props: { user: User | undefined; data: string; }; }>' is not assignable to type 'Promise<GetServerSidePropsResult<{ user: User; data?: undefined; }>>'.
Type '{ props: { user: User; data?: undefined; }; } | { props: { user: User | undefined; data: string; }; }' is not assignable to type 'GetServerSidePropsResult<{ user: Use
info - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules
info - Creating an optimized production build
info - Compiled successfully
info - Collecting page data
info - Generating static pages (3/3)
> Build error occurred
Error: Cannot find module for page: /
at pageNotFoundError (/Users/junior/projects/news-scraper/node_modules/next/dist/server/require.js:16:17)
at Object.getPagePath (/Users/junior/projects/news-scraper/node_modules/next/dist/server/require.js:39:15)
import { ButtonHTMLAttributes, DetailedHTMLProps } from "react";
import {
ButtonDefault,
ButtonGoogleSignin,
ButtonInverted,
} from "./button.styles";
export const ButtonClasses = {
default: ButtonDefault,
googleSignin: ButtonGoogleSignin,