-
+
What is this?
@@ -26,15 +26,15 @@ export function WhatIs() {
What actions you can perform depends on your role, but some remarkable ones are:
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
It's clear that you'll have access to different features depending on your role(s).
@@ -43,7 +43,7 @@ export function WhatIs() {
)
}
-export function FeatureBox({ icon: Icon, feature }: { icon: LucideIcon; feature: string }) {
+export function FeatureBox({ icon: Icon, feature }: { icon: IconType; feature: string }) {
return (
diff --git a/src/app/(auth)/onboarding/link/telegram.tsx b/src/app/(auth)/onboarding/link/telegram.tsx
index 86d5e0a..d6dd6bd 100644
--- a/src/app/(auth)/onboarding/link/telegram.tsx
+++ b/src/app/(auth)/onboarding/link/telegram.tsx
@@ -1,8 +1,8 @@
"use client"
import { APIError } from "better-auth/api"
-import { CircleCheckBig, ClockAlertIcon } from "lucide-react"
import { useRouter } from "next/navigation"
import { useCallback, useEffect, useState } from "react"
+import { FiCheckCircle, FiClock } from "react-icons/fi"
import { toast } from "sonner"
import { Code } from "@/components/code"
import { InputWithPrefix } from "@/components/input-prefix"
@@ -104,7 +104,7 @@ export function TelegramLink({ botUsername }: { botUsername: string }) {
if (success)
return (
-
+
Linked successfully!
Redirecting you in 5s...
@@ -113,7 +113,7 @@ export function TelegramLink({ botUsername }: { botUsername: string }) {
if (expired)
return (
-
+
Code Expired!
diff --git a/src/app/dashboard/(active)/account/delete-passkey.tsx b/src/app/dashboard/(active)/account/delete-passkey.tsx
index 0047e80..56a1435 100644
--- a/src/app/dashboard/(active)/account/delete-passkey.tsx
+++ b/src/app/dashboard/(active)/account/delete-passkey.tsx
@@ -1,7 +1,7 @@
"use client"
-import { Trash2Icon } from "lucide-react"
import { useRouter } from "next/navigation"
+import { FiTrash2 } from "react-icons/fi"
import { toast } from "sonner"
import {
AlertDialog,
@@ -34,7 +34,7 @@ export function DeletePasskey({ id }: { id: string }) {
-
+
Remove passkey
Are you sure you want to delete this passkey?
diff --git a/src/app/dashboard/(active)/account/page.tsx b/src/app/dashboard/(active)/account/page.tsx
index 0ac592a..8267448 100644
--- a/src/app/dashboard/(active)/account/page.tsx
+++ b/src/app/dashboard/(active)/account/page.tsx
@@ -1,5 +1,5 @@
-import { Calendar, CircleAlert, KeyIcon } from "lucide-react"
import { headers } from "next/headers"
+import { FiAlertCircle, FiCalendar, FiKey } from "react-icons/fi"
import { auth } from "@/lib/auth"
import { getServerSession } from "@/server/auth"
import { DeletePasskey } from "./delete-passkey"
@@ -28,7 +28,7 @@ export default async function Account() {
- {!user.name &&
}
+ {!user.name &&
}
Name:
{user.name ?
{user.name}
:
}
@@ -48,12 +48,12 @@ export default async function Account() {
{passkeys?.map((p) => (
-
+
{p.name}
-
+
Created on {p.createdAt.toLocaleDateString()}
diff --git a/src/app/dashboard/(active)/account/profile-pic.tsx b/src/app/dashboard/(active)/account/profile-pic.tsx
index 43d17dc..bfdf238 100644
--- a/src/app/dashboard/(active)/account/profile-pic.tsx
+++ b/src/app/dashboard/(active)/account/profile-pic.tsx
@@ -1,9 +1,9 @@
"use client"
import type { User } from "better-auth"
-import { Pencil, Upload, UserIcon, X } from "lucide-react"
import { useRouter } from "next/navigation"
import { forwardRef, useRef } from "react"
+import { FiEdit2, FiUpload, FiUser, FiX } from "react-icons/fi"
import { toast } from "sonner"
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu"
@@ -42,15 +42,15 @@ export function ProfilePic({ user }: Props) {
uploadRef.current?.click()}>
- Upload
+ Upload
- Remove
+ Remove
@@ -59,7 +59,7 @@ export function ProfilePic({ user }: Props) {
- {user.name ? getInitials(user.name) : }
+ {user.name ? getInitials(user.name) : }
Max 1MB
diff --git a/src/app/dashboard/(active)/azure/groups/groups-list.tsx b/src/app/dashboard/(active)/azure/groups/groups-list.tsx
index 41909c7..2bf11d5 100644
--- a/src/app/dashboard/(active)/azure/groups/groups-list.tsx
+++ b/src/app/dashboard/(active)/azure/groups/groups-list.tsx
@@ -1,8 +1,8 @@
"use client"
-import { ChevronDown, Info, LoaderCircle, Mail, UserMinus, UserPlus } from "lucide-react"
import { useRouter } from "next/navigation"
import { useMemo, useState } from "react"
+import { FiChevronDown, FiInfo, FiLoader, FiMail, FiUserMinus, FiUserPlus } from "react-icons/fi"
import { toast } from "sonner"
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
import { Avatar, AvatarFallback, AvatarGroup, AvatarGroupCount } from "@/components/ui/avatar"
@@ -63,7 +63,7 @@ export function GroupsList({ groups, directoryMembers }: { groups: AzureGroup[];
-
+
Looking for groups with 0-1 member(s)?
Groups with max one member are collected in a collapsed section at the bottom of the page.
@@ -86,7 +86,7 @@ export function GroupsList({ groups, directoryMembers }: { groups: AzureGroup[];
{multiMemberGroups.length} {singleMemberGroups.length === 1 ? "group" : "groups"}
-
+
}
/>
@@ -116,7 +116,7 @@ export function GroupsList({ groups, directoryMembers }: { groups: AzureGroup[];
{singleMemberGroups.length} {singleMemberGroups.length === 1 ? "group" : "groups"}
-
+
}
/>
@@ -148,7 +148,7 @@ function GroupRow({ group, directoryMembers }: { group: AzureGroup; directoryMem
{group.displayName}
{group.mailAddress && (
-
+
{group.mailAddress}
)}
@@ -263,7 +263,7 @@ function AddMemberDialog({ group, directoryMembers }: { group: AzureGroup; direc
/>
}
>
-
+
Add member
@@ -310,9 +310,9 @@ function AddMemberDialog({ group, directoryMembers }: { group: AzureGroup; direc
/>
@@ -381,7 +381,7 @@ function RemoveMemberDialog({ group, directoryMembers }: { group: AzureGroup; di
/>
}
>
-
+
Remove member
@@ -430,9 +430,9 @@ function RemoveMemberDialog({ group, directoryMembers }: { group: AzureGroup; di
/>
diff --git a/src/app/dashboard/(active)/complete-profile.tsx b/src/app/dashboard/(active)/complete-profile.tsx
index 89fc4ac..10c0eb4 100644
--- a/src/app/dashboard/(active)/complete-profile.tsx
+++ b/src/app/dashboard/(active)/complete-profile.tsx
@@ -1,7 +1,7 @@
"use client"
-import { UserRoundPenIcon } from "lucide-react"
import Link from "next/link"
+import { FiEdit3 } from "react-icons/fi"
import { Button } from "@/components/ui/button"
import { useSession } from "@/lib/auth"
@@ -13,7 +13,7 @@ export function CompleteProfile() {
return (
!data.user.name && (
-
+
Your profile is incomplete, please enter the missing information.
diff --git a/src/app/dashboard/(active)/page.tsx b/src/app/dashboard/(active)/page.tsx
index a0cb34b..b22e159 100644
--- a/src/app/dashboard/(active)/page.tsx
+++ b/src/app/dashboard/(active)/page.tsx
@@ -1,4 +1,4 @@
-import { InfoIcon } from "lucide-react"
+import { FiInfo } from "react-icons/fi"
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
import { CompleteProfile } from "./complete-profile"
@@ -7,7 +7,7 @@ export default function AdminHome() {
-
+
Page under construction
Use the sidebar to access the sections
diff --git a/src/app/dashboard/(active)/telegram/grants/delete-grant.tsx b/src/app/dashboard/(active)/telegram/grants/delete-grant.tsx
index c12558b..2eb277b 100644
--- a/src/app/dashboard/(active)/telegram/grants/delete-grant.tsx
+++ b/src/app/dashboard/(active)/telegram/grants/delete-grant.tsx
@@ -1,8 +1,8 @@
"use client"
-import { OctagonX } from "lucide-react"
import { useRouter } from "next/navigation"
import { useState } from "react"
+import { FiAlertOctagon } from "react-icons/fi"
import { toast } from "sonner"
import {
AlertDialog,
@@ -58,7 +58,7 @@ export function DeleteGrant({
-
+
Interrupt
}
@@ -66,7 +66,7 @@ export function DeleteGrant({
-
+
Interrupt Grant
Are you sure you want to interrupt the grant?
diff --git a/src/app/dashboard/(active)/telegram/grants/new-grant.tsx b/src/app/dashboard/(active)/telegram/grants/new-grant.tsx
index 3f839aa..7c709c1 100644
--- a/src/app/dashboard/(active)/telegram/grants/new-grant.tsx
+++ b/src/app/dashboard/(active)/telegram/grants/new-grant.tsx
@@ -1,9 +1,9 @@
"use client"
import { format } from "date-fns"
-import { ChevronDownIcon, Plus } from "lucide-react"
import { useRouter } from "next/navigation"
import { useCallback, useEffect, useState } from "react"
+import { FiChevronDown, FiPlus } from "react-icons/fi"
import { toast } from "sonner"
import { Button } from "@/components/ui/button"
import { Calendar } from "@/components/ui/calendar"
@@ -99,7 +99,7 @@ export function NewGrant() {
- New Grant
+ New Grant
}
/>
@@ -184,7 +184,7 @@ function DatePicker({ onSelect }: { onSelect: (date: Date, startTime: number, du
render={
}
/>
diff --git a/src/app/dashboard/(active)/telegram/groups/group-row.tsx b/src/app/dashboard/(active)/telegram/groups/group-row.tsx
index bfb8006..e17328d 100644
--- a/src/app/dashboard/(active)/telegram/groups/group-row.tsx
+++ b/src/app/dashboard/(active)/telegram/groups/group-row.tsx
@@ -1,6 +1,6 @@
"use client"
-import { Copy } from "lucide-react"
import { useRouter } from "next/navigation"
+import { FiCopy } from "react-icons/fi"
import { toast } from "sonner"
import { Badge } from "@/components/ui/badge"
import { Button } from "@/components/ui/button"
@@ -54,7 +54,7 @@ export function GroupRow({ row: r }: { row: TgGroup }) {
}
}}
>
-
+
diff --git a/src/app/dashboard/(active)/telegram/groups/leave-chat.tsx b/src/app/dashboard/(active)/telegram/groups/leave-chat.tsx
index 8a8a284..221564b 100644
--- a/src/app/dashboard/(active)/telegram/groups/leave-chat.tsx
+++ b/src/app/dashboard/(active)/telegram/groups/leave-chat.tsx
@@ -1,8 +1,8 @@
"use client"
-import { OctagonX, Trash2 } from "lucide-react"
import { useRouter } from "next/navigation"
import { useState } from "react"
+import { FiAlertOctagon, FiTrash2 } from "react-icons/fi"
import { toast } from "sonner"
import { Spinner } from "@/components/spinner"
import {
@@ -57,7 +57,7 @@ export function LeaveChat({ chatId }: { chatId: number }) {
-
+
Leave
}
@@ -65,7 +65,7 @@ export function LeaveChat({ chatId }: { chatId: number }) {
-
+
Leave chat
diff --git a/src/app/dashboard/(active)/telegram/users/[id]/add-role.tsx b/src/app/dashboard/(active)/telegram/users/[id]/add-role.tsx
index 361ddc1..c702ab1 100644
--- a/src/app/dashboard/(active)/telegram/users/[id]/add-role.tsx
+++ b/src/app/dashboard/(active)/telegram/users/[id]/add-role.tsx
@@ -1,8 +1,8 @@
"use client"
import { USER_ROLE } from "@polinetwork/backend"
-import { Plus } from "lucide-react"
import { useRouter } from "next/navigation"
import { useState } from "react"
+import { FiPlus } from "react-icons/fi"
import { toast } from "sonner"
import { Spinner } from "@/components/spinner"
import { Badge } from "@/components/ui/badge"
@@ -89,7 +89,7 @@ export function AddRole({
- Add Role
+ Add Role
}
/>
diff --git a/src/app/dashboard/(active)/telegram/users/[id]/card-message.tsx b/src/app/dashboard/(active)/telegram/users/[id]/card-message.tsx
index 46603cc..4f60cda 100644
--- a/src/app/dashboard/(active)/telegram/users/[id]/card-message.tsx
+++ b/src/app/dashboard/(active)/telegram/users/[id]/card-message.tsx
@@ -1,4 +1,4 @@
-import { ExternalLinkIcon } from "lucide-react"
+import { FiExternalLink } from "react-icons/fi"
import { Button } from "@/components/ui/button"
import { Card, CardContent, CardFooter } from "@/components/ui/card"
import { stripChatId } from "@/lib/utils/telegram"
@@ -30,7 +30,7 @@ export function MessageCard({ message: m }: { message: Message }) {
{m.group?.inviteLink && (
)}
@@ -41,7 +41,7 @@ export function MessageCard({ message: m }: { message: Message }) {
aria-label="Open message in chat"
>
diff --git a/src/app/dashboard/(active)/telegram/users/[id]/card-user-grant.tsx b/src/app/dashboard/(active)/telegram/users/[id]/card-user-grant.tsx
index 7dbeb37..8e8de0e 100644
--- a/src/app/dashboard/(active)/telegram/users/[id]/card-user-grant.tsx
+++ b/src/app/dashboard/(active)/telegram/users/[id]/card-user-grant.tsx
@@ -1,6 +1,6 @@
"use client"
import { format } from "date-fns"
-import { Sparkle } from "lucide-react"
+import { FiZap } from "react-icons/fi"
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card"
import type { TgGrant, TgUser } from "@/server/trpc/types"
import { DeleteGrant } from "../../grants/delete-grant"
@@ -18,7 +18,7 @@ export function UserGrantCard({
- Ongoing Grant
+ Ongoing Grant
This user has an ongoing grant
diff --git a/src/app/dashboard/(active)/telegram/users/[id]/card-user-info.tsx b/src/app/dashboard/(active)/telegram/users/[id]/card-user-info.tsx
index 52741df..8a44e6b 100644
--- a/src/app/dashboard/(active)/telegram/users/[id]/card-user-info.tsx
+++ b/src/app/dashboard/(active)/telegram/users/[id]/card-user-info.tsx
@@ -1,5 +1,5 @@
"use client"
-import { Star } from "lucide-react"
+import { FiStar } from "react-icons/fi"
import { Badge } from "@/components/ui/badge"
import { Card, CardContent, CardFooter, CardHeader, CardTitle } from "@/components/ui/card"
import { useSession } from "@/lib/auth"
@@ -30,7 +30,7 @@ export function UserInfoCard({
# User ID: {user.id}{" "}
{isSelf && (
- You
+ You
)}
diff --git a/src/app/dashboard/(active)/telegram/users/[id]/delete-group-admin.tsx b/src/app/dashboard/(active)/telegram/users/[id]/delete-group-admin.tsx
index 25b0b36..cfcd50b 100644
--- a/src/app/dashboard/(active)/telegram/users/[id]/delete-group-admin.tsx
+++ b/src/app/dashboard/(active)/telegram/users/[id]/delete-group-admin.tsx
@@ -1,8 +1,8 @@
"use client"
-import { Trash2, Trash2Icon } from "lucide-react"
import { useRouter } from "next/navigation"
import { useState } from "react"
+import { FiTrash2 } from "react-icons/fi"
import { toast } from "sonner"
import { Spinner } from "@/components/spinner"
import {
@@ -63,7 +63,7 @@ export function DeleteGroupAdmin({
-
+
Delete
}
@@ -71,7 +71,7 @@ export function DeleteGroupAdmin({
-
+
Remove Group Admin
Are you sure you want to remove the group admin?
diff --git a/src/app/dashboard/(active)/telegram/users/[id]/new-group-admin.tsx b/src/app/dashboard/(active)/telegram/users/[id]/new-group-admin.tsx
index 840e20d..fc7f5e5 100644
--- a/src/app/dashboard/(active)/telegram/users/[id]/new-group-admin.tsx
+++ b/src/app/dashboard/(active)/telegram/users/[id]/new-group-admin.tsx
@@ -1,7 +1,7 @@
"use client"
-import { Plus, Search, X } from "lucide-react"
import { useRouter } from "next/navigation"
import { useState } from "react"
+import { FiPlus, FiSearch, FiX } from "react-icons/fi"
import { toast } from "sonner"
import { Button } from "@/components/ui/button"
import {
@@ -84,7 +84,7 @@ export function NewGroupAdmin({
- New
+ New
}
/>
@@ -119,12 +119,12 @@ export function NewGroupAdmin({
value={groupQuery}
/>
{groups.length > 0 && (
)}
diff --git a/src/app/dashboard/(active)/telegram/users/[id]/page.tsx b/src/app/dashboard/(active)/telegram/users/[id]/page.tsx
index bc83ede..ec6649e 100644
--- a/src/app/dashboard/(active)/telegram/users/[id]/page.tsx
+++ b/src/app/dashboard/(active)/telegram/users/[id]/page.tsx
@@ -10,8 +10,8 @@ import { NewGroupAdmin } from "./new-group-admin"
export default async function TgUserDetails({ params }: { params: Promise<{ id: string }> }) {
const { id } = await params
- const parsedInt = parseInt(id, 10)
- if (isNaN(parsedInt)) notFound()
+ const parsedInt = Number(id)
+ if (!Number.isInteger(parsedInt) || !Number.isSafeInteger(parsedInt)) notFound()
const data = await getUserDetails(parsedInt)
if (!data) notFound()
diff --git a/src/app/dashboard/(active)/telegram/users/[id]/remove-role.tsx b/src/app/dashboard/(active)/telegram/users/[id]/remove-role.tsx
index 82ddde0..261a6b4 100644
--- a/src/app/dashboard/(active)/telegram/users/[id]/remove-role.tsx
+++ b/src/app/dashboard/(active)/telegram/users/[id]/remove-role.tsx
@@ -1,8 +1,8 @@
"use client"
import { USER_ROLE } from "@polinetwork/backend"
-import { Minus } from "lucide-react"
import { useRouter } from "next/navigation"
import { useState } from "react"
+import { FiMinus } from "react-icons/fi"
import { toast } from "sonner"
import { Spinner } from "@/components/spinner"
import { Badge } from "@/components/ui/badge"
@@ -93,7 +93,7 @@ export function RemoveRole({
- Remove Role
+ Remove Role
}
/>
diff --git a/src/app/dashboard/(active)/telegram/users/page.tsx b/src/app/dashboard/(active)/telegram/users/page.tsx
index 5a52f6d..79d7a71 100644
--- a/src/app/dashboard/(active)/telegram/users/page.tsx
+++ b/src/app/dashboard/(active)/telegram/users/page.tsx
@@ -1,5 +1,5 @@
-import { Eye } from "lucide-react"
import Link from "next/link"
+import { FiEye } from "react-icons/fi"
import { SearchInput } from "@/components/search-input"
import { Button } from "@/components/ui/button"
import { trpc } from "@/server/trpc"
@@ -47,7 +47,7 @@ function UserRow({ row: r }: { row: Users[number] }) {
diff --git a/src/app/dashboard/(active)/web/guide/create-guide.tsx b/src/app/dashboard/(active)/web/guide/create-guide.tsx
index 6799ad0..5845298 100644
--- a/src/app/dashboard/(active)/web/guide/create-guide.tsx
+++ b/src/app/dashboard/(active)/web/guide/create-guide.tsx
@@ -1,8 +1,8 @@
"use client"
import { format } from "date-fns"
-import { ChevronDownIcon, Plus, Upload } from "lucide-react"
import { useState } from "react"
+import { FiChevronDown, FiPlus, FiUpload } from "react-icons/fi"
import { toast } from "sonner"
import { Button } from "@/components/ui/button"
import { Calendar } from "@/components/ui/calendar"
@@ -84,7 +84,7 @@ export function CreateGuide({
- Add Guide
+ Add Guide
}
/>
@@ -116,7 +116,7 @@ export function CreateGuide({
render={
}
/>
@@ -142,7 +142,7 @@ export function CreateGuide({
htmlFor="file"
className="flex h-8 w-full cursor-pointer items-center gap-2 rounded-lg border border-input bg-transparent px-2.5 text-sm transition-colors hover:bg-accent/50"
>
-
+
{file ? file.name : "Choose a PDF file..."}
diff --git a/src/app/dashboard/(active)/web/guide/delete-guide.tsx b/src/app/dashboard/(active)/web/guide/delete-guide.tsx
index 9d88482..9597629 100644
--- a/src/app/dashboard/(active)/web/guide/delete-guide.tsx
+++ b/src/app/dashboard/(active)/web/guide/delete-guide.tsx
@@ -1,7 +1,7 @@
"use client"
-import { OctagonX, Trash } from "lucide-react"
import { useState } from "react"
+import { FiAlertOctagon, FiTrash } from "react-icons/fi"
import { toast } from "sonner"
import {
AlertDialog,
@@ -52,14 +52,14 @@ export function DeleteGuide({
-
+
}
/>
-
+
Delete Guide
diff --git a/src/components/dashboard-sidebar/data.tsx b/src/components/dashboard-sidebar/data.tsx
index a50c731..0fa52ae 100644
--- a/src/components/dashboard-sidebar/data.tsx
+++ b/src/components/dashboard-sidebar/data.tsx
@@ -1,5 +1,5 @@
-import { BookOpen, Globe, MessageCircleMoreIcon, Sparkle, Users, UsersRound } from "lucide-react"
import Image from "next/image"
+import { FiBookOpen, FiGlobe, FiMessageSquare, FiUsers, FiZap } from "react-icons/fi"
import azureSvg from "@/assets/svg/azure.svg"
import telegramSvg from "@/assets/svg/telegram.svg"
@@ -9,23 +9,23 @@ export const DSData = {
title: "Telegram",
icon: ,
items: [
- { title: "Grants", url: "/dashboard/telegram/grants", icon: },
- { title: "Groups", url: "/dashboard/telegram/groups", icon: },
- { title: "Users", url: "/dashboard/telegram/users", icon: },
+ { title: "Grants", url: "/dashboard/telegram/grants", icon: },
+ { title: "Groups", url: "/dashboard/telegram/groups", icon: },
+ { title: "Users", url: "/dashboard/telegram/users", icon: },
],
},
{
title: "Azure",
icon: ,
items: [
- { title: "Groups", url: "/dashboard/azure/groups", icon: },
- { title: "Members", url: "/dashboard/azure/members", icon: },
+ { title: "Groups", url: "/dashboard/azure/groups", icon: },
+ { title: "Members", url: "/dashboard/azure/members", icon: },
],
},
{
title: "Web",
- icon: ,
- items: [{ title: "Guide", url: "/dashboard/web/guide", icon: }],
+ icon: ,
+ items: [{ title: "Guide", url: "/dashboard/web/guide", icon: }],
},
],
}
diff --git a/src/components/dashboard-sidebar/main-nav.tsx b/src/components/dashboard-sidebar/main-nav.tsx
index 7b7acf5..b61f719 100644
--- a/src/components/dashboard-sidebar/main-nav.tsx
+++ b/src/components/dashboard-sidebar/main-nav.tsx
@@ -1,8 +1,8 @@
"use client"
-import { ChevronRight } from "lucide-react"
import Link from "next/link"
import { usePathname } from "next/navigation"
import { useState } from "react"
+import { FiChevronRight } from "react-icons/fi"
import { COOKIES } from "@/constants"
import { useCookieStorage } from "@/hooks/use-cookie-storage"
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../ui/collapsible"
@@ -67,7 +67,7 @@ function DSMenuCategory({
{category.icon}
{category.title}
-
+
}
/>
diff --git a/src/components/dashboard-sidebar/user-nav.tsx b/src/components/dashboard-sidebar/user-nav.tsx
index 40ceabe..ca07cdc 100644
--- a/src/components/dashboard-sidebar/user-nav.tsx
+++ b/src/components/dashboard-sidebar/user-nav.tsx
@@ -1,8 +1,8 @@
"use client"
-import { Bell, ChevronsUpDown, LogOut, UserIcon } from "lucide-react"
import Link from "next/link"
import { useRouter } from "next/navigation"
+import { FiBell, FiChevronsDown, FiLogOut, FiUser } from "react-icons/fi"
import { toast } from "sonner"
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import {
@@ -40,13 +40,13 @@ export function DSUserNav() {
>
- {user.name ? getInitials(user.name) : }
+ {user.name ? getInitials(user.name) : }
{user.name}
{user.email}
-
+
}
/>
@@ -61,7 +61,7 @@ export function DSUserNav() {
- {user.name ? getInitials(user.name) : }
+ {user.name ? getInitials(user.name) : }
{user.name}
@@ -74,12 +74,12 @@ export function DSUserNav() {
-
+
Account
-
+
Notifications
@@ -97,7 +97,7 @@ export function DSUserNav() {
})
}
>
-
+
Log out
diff --git a/src/components/header-login-button.tsx b/src/components/header-login-button.tsx
index ed3dd14..62057da 100644
--- a/src/components/header-login-button.tsx
+++ b/src/components/header-login-button.tsx
@@ -1,7 +1,7 @@
"use client"
-import { LogIn, LogOut } from "lucide-react"
import Link from "next/link"
import { usePathname, useRouter } from "next/navigation"
+import { FiLogIn, FiLogOut } from "react-icons/fi"
import { useIsMobile } from "@/hooks/use-mobile"
import { auth, useSession } from "@/lib/auth"
import { Button } from "./ui/button"
@@ -24,7 +24,7 @@ export function HeaderLoginButton() {
router.refresh()
}}
>
-
Logout
+
Logout
)
@@ -36,7 +36,7 @@ export function HeaderLoginButton() {
className="rounded-lg"
size={isMobile ? "icon" : "default"}
>
-
+
Login
diff --git a/src/components/header.tsx b/src/components/header.tsx
index 55c341e..d007f74 100644
--- a/src/components/header.tsx
+++ b/src/components/header.tsx
@@ -1,5 +1,5 @@
-import { GlobeIcon } from "lucide-react"
import Link from "next/link"
+import { FiGlobe } from "react-icons/fi"
import { ThemeButton } from "@/components/theme-button"
import { HeaderLoginButton } from "./header-login-button"
import { Logo } from "./logo"
@@ -22,7 +22,7 @@ export async function Header() {
diff --git a/src/components/logout-button.tsx b/src/components/logout-button.tsx
index 1a6a958..de99534 100644
--- a/src/components/logout-button.tsx
+++ b/src/components/logout-button.tsx
@@ -1,5 +1,5 @@
-import { LogOut } from "lucide-react"
import { redirect } from "next/navigation"
+import { FiLogOut } from "react-icons/fi"
import { Button } from "@/components/ui/button"
import { signOut } from "@/lib/auth"
@@ -13,7 +13,7 @@ export function LogoutButton() {
variant="destructive"
type="submit"
>
-
+
Logout
)
diff --git a/src/components/navigate-back.tsx b/src/components/navigate-back.tsx
index 463f442..febb551 100644
--- a/src/components/navigate-back.tsx
+++ b/src/components/navigate-back.tsx
@@ -1,7 +1,7 @@
"use client"
-import { ArrowLeft } from "lucide-react"
import { useRouter } from "next/navigation"
+import { FiArrowLeft } from "react-icons/fi"
import { Button } from "./ui/button"
export function NavigateBack() {
@@ -15,7 +15,7 @@ export function NavigateBack() {
router.back()
}}
>
-
+
)
}
diff --git a/src/components/search-input.tsx b/src/components/search-input.tsx
index e0e5a9e..43b9009 100644
--- a/src/components/search-input.tsx
+++ b/src/components/search-input.tsx
@@ -1,8 +1,8 @@
"use client"
-import { RefreshCcw, Search } from "lucide-react"
import { useRouter, useSearchParams } from "next/navigation"
import { useEffect, useState } from "react"
+import { FiRefreshCcw, FiSearch } from "react-icons/fi"
import { Button } from "@/components/ui/button"
import { Input } from "@/components/ui/input"
@@ -35,11 +35,11 @@ export function SearchInput({ disabled }: { disabled?: boolean }) {
placeholder="Search..."
/>
diff --git a/src/components/theme-button.tsx b/src/components/theme-button.tsx
index cbaa0ad..2ddc817 100644
--- a/src/components/theme-button.tsx
+++ b/src/components/theme-button.tsx
@@ -1,6 +1,6 @@
"use client"
-import { MoonIcon, SunIcon } from "lucide-react"
import { useTheme } from "next-themes"
+import { FiMoon, FiSun } from "react-icons/fi"
import { Button } from "./ui/button"
export function ThemeButton() {
@@ -9,8 +9,8 @@ export function ThemeButton() {
// TODO: remove disabled when light theme is ready
return (
)
}
diff --git a/src/components/ui/breadcrumb.tsx b/src/components/ui/breadcrumb.tsx
index e0deed4..28b736e 100644
--- a/src/components/ui/breadcrumb.tsx
+++ b/src/components/ui/breadcrumb.tsx
@@ -3,7 +3,7 @@ import { mergeProps } from "@base-ui/react/merge-props"
import { useRender } from "@base-ui/react/use-render"
import { cn } from "@/lib/utils/shadcn"
-import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react"
+import { FiChevronRight, FiMoreHorizontal } from "react-icons/fi"
function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
return (
@@ -86,7 +86,7 @@ function BreadcrumbSeparator({
{...props}
>
{children ?? (
-
+
)}
)
@@ -107,8 +107,7 @@ function BreadcrumbEllipsis({
)}
{...props}
>
-
+
More
)
diff --git a/src/components/ui/calendar.tsx b/src/components/ui/calendar.tsx
index 686626b..a39b65e 100644
--- a/src/components/ui/calendar.tsx
+++ b/src/components/ui/calendar.tsx
@@ -10,7 +10,7 @@ import {
import { cn } from "@/lib/utils/shadcn"
import { Button, buttonVariants } from "@/components/ui/button"
-import { ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon } from "lucide-react"
+import { FiChevronLeft, FiChevronRight, FiChevronDown } from "react-icons/fi"
function Calendar({
className,
@@ -147,18 +147,18 @@ function Calendar({
Chevron: ({ className, orientation, ...props }) => {
if (orientation === "left") {
return (
-
+
)
}
if (orientation === "right") {
return (
-
+
)
}
return (
-
+
)
},
DayButton: ({ ...props }) => (
diff --git a/src/components/ui/command.tsx b/src/components/ui/command.tsx
index b57a702..7b8b0ef 100644
--- a/src/components/ui/command.tsx
+++ b/src/components/ui/command.tsx
@@ -15,7 +15,7 @@ import {
InputGroup,
InputGroupAddon,
} from "@/components/ui/input-group"
-import { SearchIcon, CheckIcon } from "lucide-react"
+import { FiSearch, FiCheck } from "react-icons/fi"
function Command({
className,
@@ -82,7 +82,7 @@ function CommandInput({
{...props}
/>
-
+
@@ -162,7 +162,7 @@ function CommandItem({
{...props}
>
{children}
-
+
)
}
diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx
index 9bb1f25..c3f389e 100644
--- a/src/components/ui/dialog.tsx
+++ b/src/components/ui/dialog.tsx
@@ -5,7 +5,7 @@ import { Dialog as DialogPrimitive } from "@base-ui/react/dialog"
import { cn } from "@/lib/utils/shadcn"
import { Button } from "@/components/ui/button"
-import { XIcon } from "lucide-react"
+import { FiX } from "react-icons/fi"
function Dialog({ ...props }: DialogPrimitive.Root.Props) {
return
@@ -61,7 +61,6 @@ function DialogContent({
{children}
{showCloseButton && (
}
>
-
+
Close
)}
diff --git a/src/components/ui/dropdown-menu.tsx b/src/components/ui/dropdown-menu.tsx
index d1c45d7..385ff9f 100644
--- a/src/components/ui/dropdown-menu.tsx
+++ b/src/components/ui/dropdown-menu.tsx
@@ -4,7 +4,7 @@ import * as React from "react"
import { Menu as MenuPrimitive } from "@base-ui/react/menu"
import { cn } from "@/lib/utils/shadcn"
-import { ChevronRightIcon, CheckIcon } from "lucide-react"
+import { FiChevronRight, FiCheck } from "react-icons/fi"
function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {
return
@@ -119,7 +119,7 @@ function DropdownMenuSubTrigger({
{...props}
>
{children}
-
+
)
}
@@ -170,8 +170,7 @@ function DropdownMenuCheckboxItem({
data-slot="dropdown-menu-checkbox-item-indicator"
>
-
+
{children}
@@ -211,8 +210,7 @@ function DropdownMenuRadioItem({
data-slot="dropdown-menu-radio-item-indicator"
>
-
+
{children}
diff --git a/src/components/ui/input-otp.tsx b/src/components/ui/input-otp.tsx
index dcbc966..baca16a 100644
--- a/src/components/ui/input-otp.tsx
+++ b/src/components/ui/input-otp.tsx
@@ -4,7 +4,7 @@ import * as React from "react"
import { OTPInput, OTPInputContext } from "input-otp"
import { cn } from "@/lib/utils/shadcn"
-import { MinusIcon } from "lucide-react"
+import { FiMinus } from "react-icons/fi"
function InputOTP({
className,
@@ -78,8 +78,7 @@ function InputOTPSeparator({ ...props }: React.ComponentProps<"div">) {
role="separator"
{...props}
>
-
+
)
}
diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx
index bef549b..efd2cb8 100644
--- a/src/components/ui/select.tsx
+++ b/src/components/ui/select.tsx
@@ -4,7 +4,7 @@ import * as React from "react"
import { Select as SelectPrimitive } from "@base-ui/react/select"
import { cn } from "@/lib/utils/shadcn"
-import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react"
+import { FiChevronDown, FiCheck, FiChevronUp } from "react-icons/fi"
const Select = SelectPrimitive.Root
@@ -49,7 +49,7 @@ function SelectTrigger({
{children}
+
}
/>
@@ -130,7 +130,7 @@ function SelectItem({
}
>
-
+
)
@@ -162,8 +162,7 @@ function SelectScrollUpButton({
)}
{...props}
>
-
+
)
}
@@ -181,8 +180,7 @@ function SelectScrollDownButton({
)}
{...props}
>
-
+
)
}
diff --git a/src/components/ui/sheet.tsx b/src/components/ui/sheet.tsx
index 308776c..a3bf29e 100644
--- a/src/components/ui/sheet.tsx
+++ b/src/components/ui/sheet.tsx
@@ -5,7 +5,7 @@ import { Dialog as SheetPrimitive } from "@base-ui/react/dialog"
import { cn } from "@/lib/utils/shadcn"
import { Button } from "@/components/ui/button"
-import { XIcon } from "lucide-react"
+import { FiX } from "react-icons/fi"
function Sheet({ ...props }: SheetPrimitive.Root.Props) {
return
@@ -70,8 +70,7 @@ function SheetContent({
/>
}
>
-
+
Close
)}
diff --git a/src/components/ui/sidebar.tsx b/src/components/ui/sidebar.tsx
index 3205f8a..a984eb5 100644
--- a/src/components/ui/sidebar.tsx
+++ b/src/components/ui/sidebar.tsx
@@ -23,7 +23,7 @@ import {
TooltipContent,
TooltipTrigger,
} from "@/components/ui/tooltip"
-import { PanelLeftIcon } from "lucide-react"
+import { FiSidebar } from "react-icons/fi"
import { useCookieStorage } from "@/hooks/use-cookie-storage"
import { COOKIES } from "@/constants"
@@ -275,7 +275,7 @@ function SidebarTrigger({
}}
{...props}
>
-
+
Toggle Sidebar
)
diff --git a/src/components/ui/sonner.tsx b/src/components/ui/sonner.tsx
index 9280ee5..ddee39b 100644
--- a/src/components/ui/sonner.tsx
+++ b/src/components/ui/sonner.tsx
@@ -2,7 +2,7 @@
import { useTheme } from "next-themes"
import { Toaster as Sonner, type ToasterProps } from "sonner"
-import { CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon, Loader2Icon } from "lucide-react"
+import { FiCheckCircle, FiInfo, FiAlertTriangle, FiAlertOctagon, FiLoader } from "react-icons/fi"
const Toaster = ({ ...props }: ToasterProps) => {
const { theme = "system" } = useTheme()
@@ -13,19 +13,19 @@ const Toaster = ({ ...props }: ToasterProps) => {
className="toaster group"
icons={{
success: (
-
+
),
info: (
-
+
),
warning: (
-
+
),
error: (
-
+
),
loading: (
-
+
),
}}
style={
diff --git a/src/components/user-select.tsx b/src/components/user-select.tsx
index 68b2a14..bcb03bd 100644
--- a/src/components/user-select.tsx
+++ b/src/components/user-select.tsx
@@ -1,7 +1,7 @@
"use client"
-import { Search, X } from "lucide-react"
import { useState } from "react"
+import { FiSearch, FiX } from "react-icons/fi"
import { toast } from "sonner"
import { fmtUser } from "@/lib/utils/telegram"
import { getUserInfo, searchUserInfo } from "@/server/actions/users"
@@ -98,11 +98,11 @@ export function UserSelect({ onUser, onReset }: Props) {
{user ? (
) : (
)}