Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"root": true,
"env": {
"browser": true,
"es2020": true
},
"extends": [
"eslint:recommended"
],
"ignorePatterns": ["dist", "*.config.js", "vite-env.d.ts"],
"parser": "@typescript-eslint/parser",
"plugins": ["react-refresh"],
"rules": {
"react-refresh/only-export-components": [
"warn",
{ "allowConstantExport": true }
],
"no-unused-vars": ["warn", {
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^_",
"args": "after-used"
}],
"no-undef": "off"
},
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
}
}
52 changes: 26 additions & 26 deletions dist/assets/index-RpkfYM5z.js → dist/assets/index-wQf9P25Y.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>CrestChat - Discord Clone</title>
<script type="module" crossorigin src="/assets/index-RpkfYM5z.js"></script>
<script type="module" crossorigin src="/assets/index-wQf9P25Y.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-Bv16ervk.css">
</head>
<body>
Expand Down
4 changes: 2 additions & 2 deletions src/components/ChatArea.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ export default function ChatArea({ channel, server, onOpenServerSettings }: Chat
setEditContent('')
}

const addReaction = (_messageId: string, _emoji: string) => {
const addReaction = () => {
// TODO: Implement reaction system
toast.info('Reactions coming soon!')
}
Expand Down Expand Up @@ -205,7 +205,7 @@ export default function ChatArea({ channel, server, onOpenServerSettings }: Chat
{/* Message Actions */}
<div className="flex items-center space-x-1 mt-2 opacity-0 group-hover:opacity-100 transition-opacity">
<button
onClick={() => addReaction(message.id, '👍')}
onClick={() => addReaction()}
className="p-1 hover:bg-discord-channel rounded text-discord-muted hover:text-discord-text transition-colors"
title="Add reaction"
>
Expand Down
4 changes: 2 additions & 2 deletions src/components/ServerSidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ interface ServerSidebarProps {
servers: Server[]
currentServer: Server | null
currentChannel: Channel | null
onServerSelect: (server: Server) => void
onChannelSelect: (channel: Channel) => void
onServerSelect: (_server: Server) => void
onChannelSelect: (_channel: Channel) => void
user: any
}

Expand Down
2 changes: 1 addition & 1 deletion src/components/ui/button.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,4 @@ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
)
Button.displayName = "Button"

export { Button, buttonVariants }
export { Button }
19 changes: 10 additions & 9 deletions src/hooks/useAuth.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { useState, useEffect } from 'react'
import { User } from '@supabase/supabase-js'
import { supabase } from '@/integrations/supabase/client'
import { logger } from '@/lib/logger'

interface AuthUser {
id: string
Expand All @@ -17,11 +18,11 @@ export function useAuth() {
const [loading, setLoading] = useState(true)

useEffect(() => {
console.log('Setting up auth listener...')
logger.log('Setting up auth listener...')

// Get initial session
supabase.auth.getSession().then(({ data: { session } }) => {
console.log('Initial session:', session?.user?.email)
logger.log('Initial session:', session?.user?.email)
if (session?.user) {
loadUserData(session.user)
}
Expand All @@ -31,7 +32,7 @@ export function useAuth() {
// Listen for auth changes
const { data: { subscription } } = supabase.auth.onAuthStateChange(
async (event, session) => {
console.log('Auth state change:', { event, userId: session?.user?.id, email: session?.user?.email })
logger.log('Auth state change:', { event, userId: session?.user?.id, email: session?.user?.email })
if (event === 'SIGNED_IN' && session?.user) {
await loadUserData(session.user)
} else if (event === 'SIGNED_OUT') {
Expand All @@ -45,7 +46,7 @@ export function useAuth() {
}, [])

const loadUserData = async (authUser: User) => {
console.log('Loading user data for:', authUser.email)
logger.log('Loading user data for:', authUser.email)
try {
// First try to get from profiles table
const { data: profile, error: profileError } = await supabase
Expand All @@ -54,11 +55,11 @@ export function useAuth() {
.eq('id', authUser.id)
.single()

console.log('Profile query result:', { profile, error: profileError })
logger.log('Profile query result:', { profile, error: profileError })

if (profile && !profileError) {
// Profile exists, use it
console.log('Using existing profile:', profile.username)
logger.log('Using existing profile:', profile.username)
setUser({
id: profile.id,
email: authUser.email || '',
Expand All @@ -72,7 +73,7 @@ export function useAuth() {
}

// Profile doesn't exist, create one
console.log('Profile not found, creating one...')
logger.log('Profile not found, creating one...')
const username = authUser.email?.split('@')[0] || 'user'
const cleanUsername = username.replace(/[^a-zA-Z0-9_]/g, '').toLowerCase()

Expand Down Expand Up @@ -101,7 +102,7 @@ export function useAuth() {
})
} else {
// Fallback: use auth user data directly
console.warn('Failed to create profile, using auth data:', createError)
logger.warn('Failed to create profile, using auth data:', createError)
setUser({
id: authUser.id,
email: authUser.email || '',
Expand All @@ -113,7 +114,7 @@ export function useAuth() {
})
}
} catch (error) {
console.error('Error loading user data:', error)
logger.error('Error loading user data:', error)
// Fallback: use auth user data directly
setUser({
id: authUser.id,
Expand Down
2 changes: 1 addition & 1 deletion src/integrations/supabase/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ export interface Database {
}
}
Views: {
[_ in never]: never
[_key in never]: never
}
Functions: {
join_server_by_invite: {
Expand Down
17 changes: 17 additions & 0 deletions src/lib/logger.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Simple logger utility for development vs production
const isDev = import.meta.env.DEV

export const logger = {
log: (...args: any[]) => {
if (isDev) console.log(...args)
},
warn: (...args: any[]) => {
if (isDev) console.warn(...args)
},
error: (...args: any[]) => {
console.error(...args) // Always log errors
},
info: (...args: any[]) => {
if (isDev) console.info(...args)
}
}