Skip to content

Instantly share code, notes, and snippets.

View praveen001's full-sized avatar
🎯
Focusing

Praveen Raj praveen001

🎯
Focusing
View GitHub Profile
@praveen001
praveen001 / controllers.go
Last active August 27, 2021 16:38
How to Pass Database Connection into Controllers in Golang
package controllers
import (
"fmt"
"net/http"
"github.com/techinscribed/repository-db/models"
)
// BaseHandler will hold everything that controller needs
@praveen001
praveen001 / App.tsx
Created January 11, 2020 02:52
Building React App using Material UI with Support for Multiple Switchable Themes
import React, { useContext } from 'react';
import { Button } from '@material-ui/core';
import { ThemeContext} from './ThemeProvider';
const App: React.FC = () => {
// Get the setter function from context
const setThemeName = useContext(ThemeContext)
return (
<div className="App">
@praveen001
praveen001 / .prettierrc
Last active July 15, 2021 23:57
React Clean Architecture
{
"semi": true,
"singleQuote": true,
"trailingComma": "none",
"tabWidth": 2,
"useTabs": false,
"bracketSpacing": true
}
@praveen001
praveen001 / App1.js
Created January 10, 2020 11:32
Authentication in Serverless React Application using AWS Amplify
import { withAuthenticator } from 'aws-amplify-react';
function App() {
return (
...
)
}
export default withAuthenticator(App, {
includeGreetings: true
@praveen001
praveen001 / sameple6.ts
Created January 9, 2020 19:43
Undo/Redo with Immer in Redux
import { ADD_TODO, REMOVE_TODO } from '../actions/todos';
const changes = {};
let currentVersion = -1;
const noOfVersionsSupported = 100;
const undoableActions = [ADD_TODO, REMOVE_TODO];
export default function(state = initialState, action) {
return produce(state, draft => {
// ... code removed for brevity
@praveen001
praveen001 / settings.json
Created December 27, 2019 15:00
VSCode Setup - Theme
{
"editor.multiCursorModifier": "ctrlCmd",
"editor.snippetSuggestions": "bottom",
"window.zoomLevel": 0,
"workbench.colorCustomizations": {
"statusBar.background": "#000",
"statusBar.border": "#222",
"statusBar.foreground": "#02bb7d",
"sideBar.background": "#081014",
@praveen001
praveen001 / webSocketRetryEpic.ts
Created July 22, 2019 11:32
Redux Observable WebSocket
const disconnectEpic = (action$, state$: StateObservable<IState>) =>
action$
.ofType(WebsocketActionTypes.DISCONNECT)
.mergeMap((action: IDisconnectFromWebsocketAction) => {
if (action.payload.retry) {
return of(connect(state$.value.config.webSocketURL)) // <-- reconnect
.delay(5000)
.startWith(disconnected());
}
onCloseSubject.complete();
@praveen001
praveen001 / webSocketReceiveEpics.ts
Last active July 22, 2019 11:26
Redux Observable WebSocket
const connectEpic = (action$, state$: StateObservable<IState>) =>
action$
.ofType(WebsocketActionTypes.CONNECT)
.switchMap((action: IConnectWebsocketAction) =>
connectSocket(state$.value.eventConfig.webSocketURL)
.map(data => receiveMessageFromWebSocket(data)) // <-- Map and fire receive action
);
@praveen001
praveen001 / webSocketConnectedEpics.ts
Created July 22, 2019 11:14
Redux Observable WebSocket
// Detect successfull connection by listening to onOpenSubject
const connectedEpic = action$ =>
action$.ofType(WebsocketActionTypes.CONNECT).switchMap(() =>
onOpenSubject.map(() => {
return connected();
})
);
@praveen001
praveen001 / webSocketEpics.ts
Created July 22, 2019 11:09
Redux Observable WebSocket
import { combineEpics, StateObservable } from 'redux-observable';
import { of } from 'rxjs';
import { Subject } from 'rxjs/Subject';
import { webSocket, WebSocketSubject } from 'rxjs/webSocket';
import {
connected,
connect,
disconnected,
disconnect,
IConnectWebsocketAction,