├── public ├── placeholder.jpg ├── placeholder-logo.png ├── placeholder-user.jpg ├── placeholder-logo.svg └── placeholder.svg ├── pnpm-lock.yaml ├── postcss.config.mjs ├── lib ├── utils.ts └── api.ts ├── app ├── location │ ├── sender │ │ └── page.tsx │ └── receiver │ │ └── page.tsx ├── layout.tsx ├── providers.tsx ├── globals.css ├── page.tsx └── users │ └── page.tsx ├── next.config.mjs ├── components ├── ui │ ├── skeleton.tsx │ ├── label.tsx │ ├── input.tsx │ ├── switch.tsx │ ├── badge.tsx │ ├── avatar.tsx │ ├── alert.tsx │ ├── button.tsx │ └── card.tsx ├── user │ ├── VirtualizedUserItem.tsx │ ├── UserCardSkeleton.tsx │ └── UserCard.tsx ├── map-component.tsx └── location │ ├── LocationReceiver.tsx │ └── LocationSender.tsx ├── types └── index.ts ├── .gitignore ├── components.json ├── tsconfig.json ├── README.md ├── package.json ├── styles └── globals.css ├── tailwind.config.ts └── hooks └── use-signalr.ts /public/placeholder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Real-Time-Location/HEAD/public/placeholder.jpg -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false -------------------------------------------------------------------------------- /public/placeholder-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Real-Time-Location/HEAD/public/placeholder-logo.png -------------------------------------------------------------------------------- /public/placeholder-user.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Real-Time-Location/HEAD/public/placeholder-user.jpg -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { clsx, type ClassValue } from "clsx" 2 | import { twMerge } from "tailwind-merge" 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /app/location/sender/page.tsx: -------------------------------------------------------------------------------- 1 | import LocationSender from '@/components/location/LocationSender'; 2 | import React from 'react'; 3 | 4 | const page = () => { 5 | return ( 6 |
{user.email}
34 |{user.phone}
35 |Demonstrate SignalR integration and infinite scroll patterns
14 |