Skip to content

Instantly share code, notes, and snippets.

View sourabhbagrecha's full-sized avatar
🎯
Focusing

Sourabh Bagrecha sourabhbagrecha

🎯
Focusing
View GitHub Profile
import { createContext, useState } from "react";
import { App, Credentials } from "realm-web";
import { APP_ID } from "../realm/constants";
// Creating a Realm App Instance
const app = new App(APP_ID);
// Creating a user context to manage and access all the user related functions
// across different component and pages.
export const UserContext = createContext();
import { useContext } from "react";
import { Navigate, Outlet, useLocation } from "react-router-dom";
import { UserContext } from "../contexts/user.context";
const PrivateRoute = (props) => {
// Fetching the user from the user context.
const { user } = useContext(UserContext);
const location = useLocation();
import { Button, TextField } from "@mui/material";
import { useContext, useEffect, useState } from "react";
import { Link, useLocation, useNavigate } from "react-router-dom";
import { UserContext } from "../contexts/user.context";
const Login = () => {
const navigate = useNavigate();
const location = useLocation();
// We are consuming our user-management context to
import { Button, TextField } from "@mui/material";
import { useContext, useState } from "react";
import { Link, useLocation, useNavigate } from "react-router-dom";
import { UserContext } from "../contexts/user.context";
const Signup = () => {
const navigate = useNavigate();
const location = useLocation();
// As explained in the Login page.
import { Button } from '@mui/material'
import { useContext } from 'react';
import { UserContext } from '../contexts/user.context';
export default function Home() {
const { logOutUser } = useContext(UserContext);
// This function is called when the user clicks the "Logout" button.
const logOut = async () => {
try {
import { BrowserRouter, Route, Routes } from "react-router-dom";
import { UserProvider } from "./contexts/user.context";
import Home from "./pages/Home.page";
import Login from "./pages/Login.page";
import PrivateRoute from "./pages/PrivateRoute.page";
import Signup from "./pages/Signup.page";
function App() {
return (
<BrowserRouter>
import { Box, Paper, useTheme } from '@mui/material';
import React from 'react'
const PageContainer = (props) => {
const theme = useTheme();
return (<Box sx={{ backgroundColor: theme.palette.grey[200] }}>
<Paper sx={{ maxWidth: "50rem", marginX: "auto", minHeight: "90vh", paddingX: "20px", paddingY: "10px" }}>
{props.children}
</Paper>
import { useContext, useEffect, useState } from 'react';
import request, { gql } from 'graphql-request';
import PageContainer from "../components/PageContainer.component";
import { UserContext } from '../contexts/user.context';
import { GRAPHQL_ENDPOINT } from '../realm/constants';
import ExpenseCard from '../components/ExpenseCard.component';
const Home = () => {
// Fetching user details from UserContext
const { user } = useContext(UserContext);
import { Delete, Edit } from "@mui/icons-material";
import { Card, CardContent, Grid, IconButton, Typography } from "@mui/material";
import request, { gql } from "graphql-request";
import { useContext } from "react";
import { Link } from "react-router-dom";
import { UserContext } from "../contexts/user.context";
import { GRAPHQL_ENDPOINT } from "../realm/constants";
const ExpenseCard = ({ _id, title, amount, category, mode, createdAt, afterDelete }) => {
const { user } = useContext(UserContext);