@armoyu/ui 1.0.2 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/Providers.d.ts +6 -0
- package/dist/app/Providers.d.ts.map +1 -0
- package/dist/app/Providers.js +37 -0
- package/dist/app/Providers.js.map +1 -0
- package/dist/app/api/proxy/[...path]/route.js +10 -2
- package/dist/app/api/proxy/[...path]/route.js.map +1 -1
- package/dist/app/layout.d.ts.map +1 -1
- package/dist/app/layout.js +15 -19
- package/dist/app/layout.js.map +1 -1
- package/dist/app/page.d.ts.map +1 -1
- package/dist/app/page.js +4 -1
- package/dist/app/page.js.map +1 -1
- package/dist/components/modules/auth/PostCard.d.ts +2 -1
- package/dist/components/modules/auth/PostCard.d.ts.map +1 -1
- package/dist/components/modules/auth/PostCard.js +115 -112
- package/dist/components/modules/auth/PostCard.js.map +1 -1
- package/dist/components/modules/auth/SidebarLeft.d.ts.map +1 -1
- package/dist/components/modules/auth/SidebarLeft.js +8 -40
- package/dist/components/modules/auth/SidebarLeft.js.map +1 -1
- package/dist/components/modules/auth/widgets/EconomyWidget.d.ts +2 -0
- package/dist/components/modules/auth/widgets/EconomyWidget.d.ts.map +1 -0
- package/dist/components/modules/auth/widgets/EconomyWidget.js +38 -0
- package/dist/components/modules/auth/widgets/EconomyWidget.js.map +1 -0
- package/dist/components/modules/auth/widgets/LeagueWidget.d.ts +2 -0
- package/dist/components/modules/auth/widgets/LeagueWidget.d.ts.map +1 -0
- package/dist/components/modules/auth/widgets/LeagueWidget.js +36 -0
- package/dist/components/modules/auth/widgets/LeagueWidget.js.map +1 -0
- package/dist/components/modules/auth/widgets/MinecraftWidget.d.ts +2 -0
- package/dist/components/modules/auth/widgets/MinecraftWidget.d.ts.map +1 -0
- package/dist/components/modules/auth/widgets/MinecraftWidget.js +36 -0
- package/dist/components/modules/auth/widgets/MinecraftWidget.js.map +1 -0
- package/dist/components/modules/auth/widgets/RankingWidget.d.ts +5 -0
- package/dist/components/modules/auth/widgets/RankingWidget.d.ts.map +1 -0
- package/dist/components/modules/auth/widgets/RankingWidget.js +79 -0
- package/dist/components/modules/auth/widgets/RankingWidget.js.map +1 -0
- package/dist/components/modules/community/GroupProfileContent.d.ts +6 -0
- package/dist/components/modules/community/GroupProfileContent.d.ts.map +1 -0
- package/dist/components/modules/community/GroupProfileContent.js +103 -0
- package/dist/components/modules/community/GroupProfileContent.js.map +1 -0
- package/dist/components/modules/community/widgets/GroupAboutCard.d.ts +6 -0
- package/dist/components/modules/community/widgets/GroupAboutCard.d.ts.map +1 -0
- package/dist/components/modules/community/widgets/GroupAboutCard.js +6 -0
- package/dist/components/modules/community/widgets/GroupAboutCard.js.map +1 -0
- package/dist/components/modules/community/widgets/GroupEventsList.d.ts +8 -0
- package/dist/components/modules/community/widgets/GroupEventsList.d.ts.map +1 -0
- package/dist/components/modules/community/widgets/GroupEventsList.js +33 -0
- package/dist/components/modules/community/widgets/GroupEventsList.js.map +1 -0
- package/dist/components/modules/community/widgets/GroupFeedSection.d.ts +9 -0
- package/dist/components/modules/community/widgets/GroupFeedSection.d.ts.map +1 -0
- package/dist/components/modules/community/widgets/GroupFeedSection.js +7 -0
- package/dist/components/modules/community/widgets/GroupFeedSection.js.map +1 -0
- package/dist/components/modules/community/widgets/GroupPermissions.d.ts +6 -0
- package/dist/components/modules/community/widgets/GroupPermissions.d.ts.map +1 -0
- package/dist/components/modules/community/widgets/GroupPermissions.js +7 -0
- package/dist/components/modules/community/widgets/GroupPermissions.js.map +1 -0
- package/dist/components/modules/community/widgets/GroupStatsGrid.d.ts +11 -0
- package/dist/components/modules/community/widgets/GroupStatsGrid.d.ts.map +1 -0
- package/dist/components/modules/community/widgets/GroupStatsGrid.js +11 -0
- package/dist/components/modules/community/widgets/GroupStatsGrid.js.map +1 -0
- package/dist/components/modules/community/widgets/GroupTopMembers.d.ts +7 -0
- package/dist/components/modules/community/widgets/GroupTopMembers.d.ts.map +1 -0
- package/dist/components/modules/community/widgets/GroupTopMembers.js +7 -0
- package/dist/components/modules/community/widgets/GroupTopMembers.js.map +1 -0
- package/dist/components/modules/forum/ForumBoard.d.ts +16 -16
- package/dist/components/modules/forum/ForumBoard.js +6 -6
- package/dist/components/modules/forum/ForumBoard.js.map +1 -1
- package/dist/components/modules/forum/TopicItem.d.ts +15 -15
- package/dist/components/modules/forum/TopicItem.js +6 -6
- package/dist/components/modules/forum/TopicItem.js.map +1 -1
- package/dist/components/modules/forum/widgets/ForumCategoryList.d.ts +6 -0
- package/dist/components/modules/forum/widgets/ForumCategoryList.d.ts.map +1 -0
- package/dist/components/modules/forum/widgets/ForumCategoryList.js +7 -0
- package/dist/components/modules/forum/widgets/ForumCategoryList.js.map +1 -0
- package/dist/components/modules/forum/widgets/ForumHeaderWidget.d.ts +6 -0
- package/dist/components/modules/forum/widgets/ForumHeaderWidget.d.ts.map +1 -0
- package/dist/components/modules/forum/widgets/ForumHeaderWidget.js +6 -0
- package/dist/components/modules/forum/widgets/ForumHeaderWidget.js.map +1 -0
- package/dist/components/modules/forum/widgets/ForumSidebar.d.ts +2 -0
- package/dist/components/modules/forum/widgets/ForumSidebar.d.ts.map +1 -0
- package/dist/components/modules/forum/widgets/ForumSidebar.js +6 -0
- package/dist/components/modules/forum/widgets/ForumSidebar.js.map +1 -0
- package/dist/components/modules/galleries/widgets/GalleryFilterBar.d.ts +8 -0
- package/dist/components/modules/galleries/widgets/GalleryFilterBar.d.ts.map +1 -0
- package/dist/components/modules/galleries/widgets/GalleryFilterBar.js +6 -0
- package/dist/components/modules/galleries/widgets/GalleryFilterBar.js.map +1 -0
- package/dist/components/modules/galleries/widgets/GalleryHeaderWidget.d.ts +2 -0
- package/dist/components/modules/galleries/widgets/GalleryHeaderWidget.d.ts.map +1 -0
- package/dist/components/modules/galleries/widgets/GalleryHeaderWidget.js +6 -0
- package/dist/components/modules/galleries/widgets/GalleryHeaderWidget.js.map +1 -0
- package/dist/components/modules/galleries/widgets/GalleryMasonryGrid.d.ts +7 -0
- package/dist/components/modules/galleries/widgets/GalleryMasonryGrid.d.ts.map +1 -0
- package/dist/components/modules/galleries/widgets/GalleryMasonryGrid.js +6 -0
- package/dist/components/modules/galleries/widgets/GalleryMasonryGrid.js.map +1 -0
- package/dist/components/modules/magaza/widgets/StoreProductGrid.d.ts +7 -0
- package/dist/components/modules/magaza/widgets/StoreProductGrid.d.ts.map +1 -0
- package/dist/components/modules/magaza/widgets/StoreProductGrid.js +13 -0
- package/dist/components/modules/magaza/widgets/StoreProductGrid.js.map +1 -0
- package/dist/components/modules/magaza/widgets/StoreSidebar.d.ts +8 -0
- package/dist/components/modules/magaza/widgets/StoreSidebar.d.ts.map +1 -0
- package/dist/components/modules/magaza/widgets/StoreSidebar.js +8 -0
- package/dist/components/modules/magaza/widgets/StoreSidebar.js.map +1 -0
- package/dist/components/modules/magaza/widgets/StoreTrustBadges.d.ts +2 -0
- package/dist/components/modules/magaza/widgets/StoreTrustBadges.d.ts.map +1 -0
- package/dist/components/modules/magaza/widgets/StoreTrustBadges.js +6 -0
- package/dist/components/modules/magaza/widgets/StoreTrustBadges.js.map +1 -0
- package/dist/components/modules/profile/ProfileContent.d.ts.map +1 -1
- package/dist/components/modules/profile/ProfileContent.js +116 -70
- package/dist/components/modules/profile/ProfileContent.js.map +1 -1
- package/dist/components/modules/profile/ProfileHeader.js +19 -19
- package/dist/components/modules/profile/ProfileHeader.js.map +1 -1
- package/dist/components/modules/profile/ProfileSidebar.d.ts +11 -0
- package/dist/components/modules/profile/ProfileSidebar.d.ts.map +1 -0
- package/dist/components/modules/profile/ProfileSidebar.js +9 -0
- package/dist/components/modules/profile/ProfileSidebar.js.map +1 -0
- package/dist/components/modules/profile/ProfileStats.d.ts +6 -1
- package/dist/components/modules/profile/ProfileStats.d.ts.map +1 -1
- package/dist/components/modules/profile/ProfileStats.js +19 -14
- package/dist/components/modules/profile/ProfileStats.js.map +1 -1
- package/dist/components/modules/profile/ProfileTabsArea.d.ts +14 -0
- package/dist/components/modules/profile/ProfileTabsArea.d.ts.map +1 -0
- package/dist/components/modules/profile/ProfileTabsArea.js +59 -0
- package/dist/components/modules/profile/ProfileTabsArea.js.map +1 -0
- package/dist/components/modules/profile/tabs/AboutTab.d.ts +10 -0
- package/dist/components/modules/profile/tabs/AboutTab.d.ts.map +1 -0
- package/dist/components/modules/profile/tabs/AboutTab.js +9 -0
- package/dist/components/modules/profile/tabs/AboutTab.js.map +1 -0
- package/dist/components/modules/profile/tabs/CareerTab.d.ts +7 -0
- package/dist/components/modules/profile/tabs/CareerTab.d.ts.map +1 -0
- package/dist/components/modules/profile/tabs/CareerTab.js +46 -0
- package/dist/components/modules/profile/tabs/CareerTab.js.map +1 -0
- package/dist/components/modules/profile/tabs/FriendsTab.d.ts +10 -0
- package/dist/components/modules/profile/tabs/FriendsTab.d.ts.map +1 -0
- package/dist/components/modules/profile/tabs/FriendsTab.js +8 -0
- package/dist/components/modules/profile/tabs/FriendsTab.js.map +1 -0
- package/dist/components/modules/profile/tabs/GamesTab.d.ts +7 -0
- package/dist/components/modules/profile/tabs/GamesTab.d.ts.map +1 -0
- package/dist/components/modules/profile/tabs/GamesTab.js +37 -0
- package/dist/components/modules/profile/tabs/GamesTab.js.map +1 -0
- package/dist/components/modules/profile/tabs/GroupsTab.d.ts +6 -0
- package/dist/components/modules/profile/tabs/GroupsTab.d.ts.map +1 -0
- package/dist/components/modules/profile/tabs/GroupsTab.js +9 -0
- package/dist/components/modules/profile/tabs/GroupsTab.js.map +1 -0
- package/dist/components/modules/profile/tabs/PostsTab.d.ts +7 -0
- package/dist/components/modules/profile/tabs/PostsTab.d.ts.map +1 -0
- package/dist/components/modules/profile/tabs/PostsTab.js +92 -0
- package/dist/components/modules/profile/tabs/PostsTab.js.map +1 -0
- package/dist/components/modules/profile/widgets/ProfileBadgesWidget.d.ts +2 -0
- package/dist/components/modules/profile/widgets/ProfileBadgesWidget.d.ts.map +1 -0
- package/dist/components/modules/profile/widgets/ProfileBadgesWidget.js +6 -0
- package/dist/components/modules/profile/widgets/ProfileBadgesWidget.js.map +1 -0
- package/dist/components/modules/profile/widgets/ProfileCloudWidget.d.ts +6 -0
- package/dist/components/modules/profile/widgets/ProfileCloudWidget.d.ts.map +1 -0
- package/dist/components/modules/profile/widgets/ProfileCloudWidget.js +6 -0
- package/dist/components/modules/profile/widgets/ProfileCloudWidget.js.map +1 -0
- package/dist/components/modules/profile/widgets/ProfileFriendsWidget.d.ts +8 -0
- package/dist/components/modules/profile/widgets/ProfileFriendsWidget.d.ts.map +1 -0
- package/dist/components/modules/profile/widgets/ProfileFriendsWidget.js +12 -0
- package/dist/components/modules/profile/widgets/ProfileFriendsWidget.js.map +1 -0
- package/dist/components/shared/DevTools.d.ts +2 -0
- package/dist/components/shared/DevTools.d.ts.map +1 -0
- package/dist/components/shared/DevTools.js +39 -0
- package/dist/components/shared/DevTools.js.map +1 -0
- package/dist/components/shared/Header.d.ts.map +1 -1
- package/dist/components/shared/Header.js +108 -97
- package/dist/components/shared/Header.js.map +1 -1
- package/dist/components/showcase/GroupTab.d.ts +2 -0
- package/dist/components/showcase/GroupTab.d.ts.map +1 -0
- package/dist/components/showcase/GroupTab.js +24 -0
- package/dist/components/showcase/GroupTab.js.map +1 -0
- package/dist/components/showcase/ProfileTab.d.ts.map +1 -1
- package/dist/components/showcase/ProfileTab.js +43 -3
- package/dist/components/showcase/ProfileTab.js.map +1 -1
- package/dist/components/showcase/SocialTab.d.ts.map +1 -1
- package/dist/components/showcase/SocialTab.js +79 -27
- package/dist/components/showcase/SocialTab.js.map +1 -1
- package/dist/context/ArmoyuContext.d.ts +42 -0
- package/dist/context/ArmoyuContext.d.ts.map +1 -0
- package/dist/context/ArmoyuContext.js +76 -0
- package/dist/context/ArmoyuContext.js.map +1 -0
- package/dist/context/AuthContext.d.ts.map +1 -1
- package/dist/context/AuthContext.js +14 -10
- package/dist/context/AuthContext.js.map +1 -1
- package/dist/context/SocketContext.d.ts.map +1 -1
- package/dist/context/SocketContext.js +31 -30
- package/dist/context/SocketContext.js.map +1 -1
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -80
- package/dist/index.js.map +1 -1
- package/dist/lib/ArmoyuUI.d.ts +18 -0
- package/dist/lib/ArmoyuUI.d.ts.map +1 -0
- package/dist/lib/ArmoyuUI.js +25 -0
- package/dist/lib/ArmoyuUI.js.map +1 -0
- package/dist/lib/constants/seedData.d.ts.map +1 -1
- package/dist/lib/constants/seedData.js +694 -694
- package/dist/lib/constants/seedData.js.map +1 -1
- package/dist/lib/constants/stationData.js +166 -166
- package/dist/lib/constants/stationData.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupTab.d.ts","sourceRoot":"","sources":["../../../src/components/showcase/GroupTab.tsx"],"names":[],"mappings":"AAgBA,wBAAgB,QAAQ,4CAoGvB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useMemo } from 'react';
|
|
4
|
+
import { GroupHeader, GroupMenu, GroupStatsGrid, GroupAboutCard, GroupEventsList, GroupFeedSection, GroupTopMembers, GroupPermissions, groupList, userList } from '../../index';
|
|
5
|
+
export function GroupTab() {
|
|
6
|
+
const [query, setQuery] = useState('');
|
|
7
|
+
const [selectedGroupId, setSelectedGroupId] = useState(groupList[0]?.id ?? '');
|
|
8
|
+
// Arama: id, slug, urlName veya name ile eşleş
|
|
9
|
+
const searchResults = useMemo(() => {
|
|
10
|
+
if (!query.trim())
|
|
11
|
+
return groupList;
|
|
12
|
+
const q = query.trim().toLowerCase();
|
|
13
|
+
return groupList.filter(g => g.id?.toString() === q ||
|
|
14
|
+
g.slug?.toLowerCase().includes(q) ||
|
|
15
|
+
g.urlName?.toLowerCase().includes(q) ||
|
|
16
|
+
g.name.toLowerCase().includes(q) ||
|
|
17
|
+
g.shortName?.toLowerCase().includes(q));
|
|
18
|
+
}, [query]);
|
|
19
|
+
const mockGroup = groupList.find(g => g.id?.toString() === selectedGroupId?.toString()) || groupList[0];
|
|
20
|
+
return (_jsxs("div", { className: "space-y-10", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-2xl font-black italic uppercase tracking-tighter border-l-4 border-emerald-500 pl-4 mb-2", children: "Grup Aray\u00FCz\u00FC Mimarisi" }), _jsx("p", { className: "text-sm font-medium text-armoyu-text-muted", children: "ID, URL ad\u0131 veya grup ad\u0131yla aratarak \u00F6nizleme yapabilirsin." })] }), _jsxs("div", { className: "flex flex-col md:flex-row gap-4 items-start", children: [_jsxs("div", { className: "relative w-full md:w-96", children: [_jsx("input", { type: "text", value: query, onChange: e => setQuery(e.target.value), placeholder: "Grup ID, URL ad\u0131 veya isim...", className: "w-full bg-black/5 dark:bg-white/5 border border-armoyu-card-border rounded-2xl px-5 py-3 pr-10 text-sm font-bold text-armoyu-text focus:outline-none focus:border-blue-500 focus:ring-1 focus:ring-blue-500 transition-all placeholder:text-armoyu-text-muted/40" }), _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", className: "absolute right-4 top-1/2 -translate-y-1/2 text-armoyu-text-muted opacity-40", children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })] })] }), query.trim() && (_jsx("div", { className: "flex flex-wrap gap-2", children: searchResults.length === 0 ? (_jsx("span", { className: "text-xs font-bold text-red-400 py-3", children: "Sonu\u00E7 bulunamad\u0131" })) : (searchResults.map(g => (_jsxs("button", { onClick: () => { setSelectedGroupId(g.id); setQuery(''); }, className: `px-4 py-2 rounded-xl text-[10px] font-black uppercase tracking-widest transition-all border ${selectedGroupId?.toString() === g.id?.toString()
|
|
21
|
+
? 'bg-blue-600 text-white border-blue-500'
|
|
22
|
+
: 'bg-black/5 dark:bg-white/5 text-armoyu-text-muted border-armoyu-card-border hover:border-blue-500 hover:text-blue-500'}`, children: ["#", g.id, " \u00B7 ", g.shortName || g.name] }, g.id)))) }))] }), _jsxs("div", { className: "flex items-center gap-3 p-4 bg-black/5 dark:bg-white/5 rounded-2xl border border-armoyu-card-border", children: [mockGroup.logo && _jsx("img", { src: mockGroup.logo, className: "w-10 h-10 rounded-xl object-cover", alt: mockGroup.name }), _jsxs("div", { children: [_jsx("p", { className: "text-xs font-black text-armoyu-text uppercase tracking-widest", children: mockGroup.name }), _jsxs("p", { className: "text-[10px] font-bold text-armoyu-text-muted", children: ["ID: ", mockGroup.id, " \u00B7 Slug: ", mockGroup.slug || mockGroup.urlName || '—'] })] })] }), _jsxs("div", { className: "space-y-6", children: [_jsx(GroupHeader, { group: mockGroup, isMember: true, onJoin: () => { }, onLeave: () => { } }), _jsx(GroupMenu, { group: mockGroup, user: userList[0], onLeave: () => { } }), _jsxs("div", { className: "grid grid-cols-1 xl:grid-cols-4 gap-12 mt-6", children: [_jsxs("div", { className: "xl:col-span-3 space-y-6", children: [_jsx(GroupStatsGrid, { stats: { members: mockGroup.memberCount || 100, online: 42, posts: 10, founded: '2024' } }), _jsx(GroupEventsList, { events: [], setEvents: () => { }, isGroupAdmin: true }), _jsx(GroupFeedSection, { group: mockGroup, user: userList[0], isMember: true, posts: [] })] }), _jsxs("div", { className: "space-y-10", children: [_jsx(GroupAboutCard, { description: mockGroup.description }), _jsx(GroupPermissions, { permissions: mockGroup.permissions || [] }), _jsx(GroupTopMembers, { members: mockGroup.members || [], groupUrl: mockGroup.getGroupUrl() })] })] })] })] }));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=GroupTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupTab.js","sourceRoot":"","sources":["../../../src/components/showcase/GroupTab.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfileTab.d.ts","sourceRoot":"","sources":["../../../src/components/showcase/ProfileTab.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProfileTab.d.ts","sourceRoot":"","sources":["../../../src/components/showcase/ProfileTab.tsx"],"names":[],"mappings":"AAYA,wBAAgB,UAAU,4CAkIzB"}
|
|
@@ -1,7 +1,47 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
4
|
+
import { ProfileHeader, ProfileStats, ProfileContent, } from '../../index';
|
|
5
|
+
import { useArmoyu } from '../../context/ArmoyuContext';
|
|
6
|
+
import { Search, User as UserIcon, Loader2, RefreshCcw } from 'lucide-react';
|
|
3
7
|
export function ProfileTab() {
|
|
4
|
-
const
|
|
5
|
-
|
|
8
|
+
const { api, apiKey } = useArmoyu();
|
|
9
|
+
const [username, setUsername] = useState('');
|
|
10
|
+
const [profile, setProfile] = useState(null);
|
|
11
|
+
const [loading, setLoading] = useState(false);
|
|
12
|
+
const [error, setError] = useState(null);
|
|
13
|
+
const fetchProfile = useCallback(async (searchName = '') => {
|
|
14
|
+
setLoading(true);
|
|
15
|
+
setError(null);
|
|
16
|
+
try {
|
|
17
|
+
console.log(`[ProfileTab] Profil çekiliyor: ${searchName || 'Kendi Profilim'}`);
|
|
18
|
+
const userData = await api.users.getUserByUsername(searchName);
|
|
19
|
+
if (!userData) {
|
|
20
|
+
const lastRaw = api.lastResponse;
|
|
21
|
+
setError(lastRaw?.aciklama || "Kullanıcı bulunamadı.");
|
|
22
|
+
setProfile(null);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
setProfile(userData);
|
|
26
|
+
console.log("[ProfileTab] Profil başarıyla yüklendi:", userData.username);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
console.error("[ProfileTab] Hata:", err);
|
|
31
|
+
setError("Profil bilgileri alınırken bir hata oluştu.");
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
setLoading(false);
|
|
35
|
+
}
|
|
36
|
+
}, [api]);
|
|
37
|
+
// İlk açılışta kendi profilini çek
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
fetchProfile('');
|
|
40
|
+
}, [fetchProfile, apiKey]);
|
|
41
|
+
const handleSearch = (e) => {
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
fetchProfile(username);
|
|
44
|
+
};
|
|
45
|
+
return (_jsxs("div", { className: "space-y-8 animate-in fade-in duration-700", children: [_jsx("div", { className: "bg-armoyu-card-bg border border-armoyu-card-border rounded-3xl p-4 shadow-sm", children: _jsxs("form", { onSubmit: handleSearch, className: "flex flex-col md:flex-row items-center gap-4", children: [_jsxs("div", { className: "flex items-center gap-3 shrink-0 px-2", children: [_jsx("div", { className: "w-10 h-10 rounded-2xl bg-pink-500/10 flex items-center justify-center text-pink-500", children: _jsx(UserIcon, { size: 20 }) }), _jsxs("div", { children: [_jsx("h3", { className: "text-sm font-black text-armoyu-text uppercase tracking-tighter italic", children: "Oyuncu Bak" }), _jsx("p", { className: "text-[10px] font-bold text-armoyu-text-muted uppercase tracking-widest opacity-50", children: "Profil \u0130nceleme" })] })] }), _jsxs("div", { className: "relative flex-1 group w-full", children: [_jsx(Search, { className: "absolute left-4 top-1/2 -translate-y-1/2 w-4 h-4 text-zinc-500 group-focus-within:text-pink-500 transition-colors" }), _jsx("input", { type: "text", value: username, onChange: (e) => setUsername(e.target.value), placeholder: "Kullan\u0131c\u0131 ad\u0131 yaz\u0131n (bo\u015F b\u0131rak\u0131rsan\u0131z kendi profiliniz gelir)...", className: "w-full bg-black/5 dark:bg-white/5 border border-pink-500/10 focus:border-pink-500/50 rounded-2xl pl-12 pr-4 py-3 text-sm font-bold text-armoyu-text outline-none transition-all" })] }), _jsxs("button", { type: "submit", disabled: loading, className: "w-full md:w-auto px-8 py-3 bg-gradient-to-r from-pink-600 to-rose-600 hover:from-pink-500 hover:to-rose-500 text-white font-black rounded-2xl text-xs uppercase tracking-widest shadow-xl shadow-pink-600/20 transition-all active:scale-95 disabled:opacity-50 flex items-center justify-center gap-2 italic", children: [loading ? _jsx(Loader2, { className: "w-4 h-4 animate-spin" }) : _jsx(Search, { className: "w-4 h-4" }), "PROF\u0130L\u0130 GET\u0130R"] })] }) }), error && (_jsxs("div", { className: "bg-red-500/10 border border-red-500/20 rounded-3xl p-8 text-center animate-in zoom-in-95 duration-300", children: [_jsx("div", { className: "w-16 h-16 bg-red-500/20 rounded-full flex items-center justify-center text-red-500 mx-auto mb-4", children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "32", height: "32", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), _jsx("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })] }) }), _jsx("h3", { className: "text-xl font-black text-armoyu-text uppercase italic tracking-tighter mb-2", children: "HATA OLU\u015ETU" }), _jsx("p", { className: "text-sm font-bold text-red-500/80 uppercase tracking-widest mb-6", children: error }), _jsxs("button", { onClick: () => fetchProfile(username), className: "px-6 py-2.5 bg-armoyu-card-bg border border-armoyu-card-border hover:border-red-500/50 text-armoyu-text text-xs font-black rounded-xl transition-all uppercase tracking-widest flex items-center gap-2 mx-auto", children: [_jsx(RefreshCcw, { size: 14 }), " TEKRAR DENE"] })] })), loading && !profile && (_jsxs("div", { className: "py-24 text-center", children: [_jsx(Loader2, { className: "w-12 h-12 animate-spin text-pink-500 mx-auto mb-4 opacity-50" }), _jsx("p", { className: "text-xs font-black text-armoyu-text-muted uppercase tracking-[0.3em] italic", children: "Profil Verileri Y\u00FCkleniyor..." })] })), profile && (_jsxs("div", { className: `space-y-12 transition-all duration-700 ${loading ? 'opacity-50 grayscale pointer-events-none' : 'opacity-100'}`, children: [_jsxs("div", { className: "relative", children: [loading && (_jsx("div", { className: "absolute inset-0 z-50 flex items-center justify-center", children: _jsx("div", { className: "bg-white/10 backdrop-blur-sm px-6 py-3 rounded-2xl border border-white/20 shadow-2xl", children: _jsx(Loader2, { className: "w-6 h-6 animate-spin text-white" }) }) })), _jsx(ProfileHeader, { user: profile, isOwnProfile: profile.username === api.client.config.username || username === '' })] }), _jsx(ProfileStats, { user: profile }), _jsx(ProfileContent, { user: profile })] })), !profile && !loading && !error && (_jsxs("div", { className: "py-24 text-center border-2 border-dashed border-armoyu-card-border rounded-[40px]", children: [_jsx(UserIcon, { className: "w-16 h-16 text-armoyu-text-muted mx-auto mb-4 opacity-20" }), _jsx("p", { className: "text-xs font-black text-armoyu-text-muted uppercase tracking-[0.3em] italic", children: "G\u00F6r\u00FCnt\u00FClemek i\u00E7in bir kullan\u0131c\u0131 aray\u0131n." })] }))] }));
|
|
6
46
|
}
|
|
7
47
|
//# sourceMappingURL=ProfileTab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfileTab.js","sourceRoot":"","sources":["../../../src/components/showcase/ProfileTab.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ProfileTab.js","sourceRoot":"","sources":["../../../src/components/showcase/ProfileTab.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialTab.d.ts","sourceRoot":"","sources":["../../../src/components/showcase/SocialTab.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SocialTab.d.ts","sourceRoot":"","sources":["../../../src/components/showcase/SocialTab.tsx"],"names":[],"mappings":"AAaA,wBAAgB,SAAS,4CA8NxB"}
|
|
@@ -1,51 +1,103 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState, useCallback } from 'react';
|
|
3
4
|
import { AuthSidebarLeft, Stories, PostCard, postList } from '../../index';
|
|
4
|
-
import {
|
|
5
|
-
import { RefreshCcw, Wifi, WifiOff,
|
|
5
|
+
import { useArmoyu } from '../../context/ArmoyuContext';
|
|
6
|
+
import { RefreshCcw, Wifi, WifiOff, Settings2 } from 'lucide-react';
|
|
6
7
|
export function SocialTab() {
|
|
8
|
+
const { api, apiKey, token } = useArmoyu();
|
|
7
9
|
const [useLive, setUseLive] = useState(false);
|
|
8
|
-
const [apiKey, setApiKey] = useState('');
|
|
9
|
-
const [token, setToken] = useState(''); // Added token state
|
|
10
10
|
const [livePosts, setLivePosts] = useState([]);
|
|
11
11
|
const [loading, setLoading] = useState(false);
|
|
12
12
|
const [error, setError] = useState(null);
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
13
|
+
const [lastRawData, setLastRawData] = useState(null);
|
|
14
|
+
const [page, setPage] = useState(1);
|
|
15
|
+
const [hasMore, setHasMore] = useState(true);
|
|
16
|
+
const fetchLivePosts = useCallback(async (isLoadMore = false) => {
|
|
18
17
|
setLoading(true);
|
|
19
|
-
|
|
18
|
+
if (!isLoadMore) {
|
|
19
|
+
setError(null);
|
|
20
|
+
setLastRawData(null);
|
|
21
|
+
}
|
|
20
22
|
try {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
const targetPage = isLoadMore ? page + 1 : 1;
|
|
24
|
+
console.log(`[SocialTab] Veri çekiliyor... Sayfa: ${targetPage}, API Key: ${apiKey ? "Mevcut" : "Eksik"}`);
|
|
25
|
+
const posts = await api.social.getPosts(targetPage);
|
|
26
|
+
const lastRaw = api.lastResponse;
|
|
27
|
+
setLastRawData(lastRaw);
|
|
28
|
+
console.log("---------------- [SocialTab DEBUG] ----------------");
|
|
29
|
+
console.log("Ham Yanıt (lastRaw):", lastRaw);
|
|
30
|
+
console.log("İşlenmiş Veri (posts):", posts);
|
|
31
|
+
console.log("Veri Tipi:", Array.isArray(posts) ? "Dizi (Array)" : typeof posts);
|
|
32
|
+
if (Array.isArray(posts)) {
|
|
33
|
+
console.log("Gönderi Sayısı (Length):", posts.length);
|
|
34
|
+
}
|
|
35
|
+
console.log("---------------------------------------------------");
|
|
36
|
+
if (!posts || (Array.isArray(posts) && posts.length === 0)) {
|
|
30
37
|
if (lastRaw && lastRaw.durum === 0) {
|
|
31
|
-
setError(lastRaw.aciklama || "API
|
|
38
|
+
setError(lastRaw.aciklama || "API Hatası: Yetki veya veri erişim problemi.");
|
|
32
39
|
return;
|
|
33
40
|
}
|
|
34
41
|
}
|
|
35
|
-
|
|
42
|
+
// Gelen veriyi PostCard'ın beklediği formata güvenli bir şekilde dönüştür (Mapping)
|
|
43
|
+
const rawArray = Array.isArray(posts) ? posts : (posts ? [posts] : []);
|
|
44
|
+
const mappedPosts = rawArray.map((p) => {
|
|
45
|
+
if (!p || typeof p !== 'object')
|
|
46
|
+
return null;
|
|
47
|
+
return {
|
|
48
|
+
...p,
|
|
49
|
+
id: p.id?.toString() || p.postID?.toString() || Math.random().toString(),
|
|
50
|
+
author: p.author || p.owner || null,
|
|
51
|
+
content: p.content || p.paylasimicerik || '',
|
|
52
|
+
media: Array.isArray(p.media) ? p.media : (Array.isArray(p.paylasimfoto) ? p.paylasimfoto.map((f) => ({ type: 'image', url: f.fotourl || f.fotoufakurl })) : []),
|
|
53
|
+
createdAt: p.createdAt || p.paylasimzaman || 'Şimdi',
|
|
54
|
+
stats: {
|
|
55
|
+
likes: p.stats?.likes ?? p.likesCount ?? p.begenisay ?? 0,
|
|
56
|
+
comments: p.stats?.comments ?? p.commentsCount ?? p.yorumsay ?? 0,
|
|
57
|
+
reposts: p.stats?.reposts ?? p.repostsay ?? 0,
|
|
58
|
+
shares: p.stats?.shares ?? p.sikayetsay ?? 0
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}).filter(Boolean);
|
|
62
|
+
console.log(`[SocialTab] Mapleme Sonrası Gönderi Sayısı: ${mappedPosts.length}`);
|
|
63
|
+
if (isLoadMore) {
|
|
64
|
+
setLivePosts((prev) => [...prev, ...mappedPosts]);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
setLivePosts(mappedPosts);
|
|
68
|
+
}
|
|
69
|
+
setPage(targetPage);
|
|
70
|
+
setHasMore(mappedPosts.length > 0);
|
|
36
71
|
setUseLive(true);
|
|
37
72
|
}
|
|
38
73
|
catch (err) {
|
|
39
|
-
|
|
74
|
+
const lastRaw = api.lastResponse;
|
|
75
|
+
setLastRawData(lastRaw);
|
|
76
|
+
console.log("================ [SocialTab ERROR] ================");
|
|
77
|
+
console.error("HATA:", err.message);
|
|
78
|
+
console.log("API YANITI:", lastRaw);
|
|
79
|
+
console.log("==================================================");
|
|
80
|
+
if (lastRaw && lastRaw.durum === 0) {
|
|
81
|
+
setError(lastRaw.aciklama || "API Hatası: Yetki veya veri erişim problemi.");
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
setError(err.message || "Veri çekilirken teknik bir hata oluştu.");
|
|
85
|
+
}
|
|
40
86
|
}
|
|
41
87
|
finally {
|
|
42
88
|
setLoading(false);
|
|
43
89
|
}
|
|
44
|
-
};
|
|
90
|
+
}, [api, apiKey]);
|
|
91
|
+
// Sayfa açıldığında verileri otomatik çek (Opsiyonel: Eğer apiKey varsa)
|
|
92
|
+
useEffect(() => {
|
|
93
|
+
if (apiKey && apiKey !== 'armoyu_showcase_key') {
|
|
94
|
+
fetchLivePosts(false);
|
|
95
|
+
}
|
|
96
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
97
|
+
}, [apiKey]); // API Key değiştiğinde veya ilk açılışta fetch et
|
|
45
98
|
const displayPosts = useLive ? livePosts : postList.slice(0, 3);
|
|
46
|
-
return (_jsxs("div", { className: "space-y-8", children: [_jsxs("div", { className: "flex flex-col xl:flex-row xl:items-center justify-between gap-
|
|
99
|
+
return (_jsxs("div", { className: "space-y-8 animate-in fade-in duration-700", children: [_jsxs("div", { className: "flex flex-col xl:flex-row xl:items-center justify-between gap-6 bg-white/5 backdrop-blur-md p-6 rounded-[2rem] border border-white/5", children: [_jsxs("div", { className: "flex items-center gap-4", children: [_jsx("div", { className: cn("w-12 h-12 rounded-2xl flex items-center justify-center shadow-2xl transition-all duration-500", useLive ? "bg-emerald-500 shadow-emerald-500/20" : "bg-blue-600 shadow-blue-600/20"), children: useLive ? _jsx(Wifi, { className: "text-white w-6 h-6" }) : _jsx(WifiOff, { className: "text-white w-6 h-6" }) }), _jsxs("div", { children: [_jsx("h3", { className: "text-base font-black text-armoyu-text uppercase tracking-tight", children: useLive ? "CANLI VERİ AKIŞI" : "MOCK (PROTOTİP) VERİ" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("p", { className: "text-[10px] font-bold text-armoyu-text-muted uppercase tracking-widest opacity-60", children: useLive ? "@armoyu/core üzerinden çekiliyor" : "Lokal seedData.ts kullanılıyor" }), useLive && (_jsx("span", { className: "flex h-2 w-2 rounded-full bg-emerald-500 animate-pulse" }))] })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("div", { className: "hidden md:flex flex-col items-end mr-2", children: [_jsx("span", { className: "text-[10px] font-black text-zinc-500 uppercase tracking-widest", children: "AKT\u0130F ANAHTAR" }), _jsx("span", { className: "text-[11px] font-mono text-emerald-500 truncate max-w-[120px]", children: apiKey === 'armoyu_showcase_key' ? 'Varsayılan (Showcase)' : 'Özel Anahtar' })] }), _jsxs("button", { onClick: () => fetchLivePosts(false), disabled: loading, className: "bg-blue-600 hover:bg-blue-500 disabled:bg-zinc-800 text-white px-8 py-3.5 rounded-2xl text-[11px] font-black uppercase tracking-widest flex items-center gap-2 transition-all shadow-xl shadow-blue-600/20 hover:scale-105 active:scale-95", children: [loading ? _jsx(RefreshCcw, { className: "w-4 h-4 animate-spin" }) : _jsx(RefreshCcw, { className: "w-4 h-4" }), "VER\u0130LER\u0130 \u00C7EK"] }), useLive && (_jsx("button", { onClick: () => setUseLive(false), className: "bg-white/5 hover:bg-white/10 text-armoyu-text-muted p-3.5 rounded-2xl transition-all", title: "Mock veriye d\u00F6n", children: _jsx(Settings2, { className: "w-4 h-4" }) }))] })] }), error && (_jsxs("div", { className: "space-y-4 animate-in slide-in-from-top-2", children: [_jsxs("div", { className: "bg-red-500/10 border border-red-500/20 p-5 rounded-2xl flex items-start gap-4", children: [_jsx("div", { className: "w-10 h-10 rounded-xl bg-red-500/20 flex items-center justify-center text-red-500 shrink-0", children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "12", y1: "8", x2: "12", y2: "12" }), _jsx("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })] }) }), _jsxs("div", { children: [_jsx("h4", { className: "text-sm font-black text-red-500 uppercase tracking-tight", children: "VER\u0130 HATASI" }), _jsx("p", { className: "text-red-500/80 text-[11px] leading-relaxed font-bold", children: error }), _jsx("p", { className: "mt-2 text-[10px] text-red-500/50 font-medium italic", children: "Sa\u011F alttaki \"Dev Tools\" panelinden ge\u00E7erli bir API Key girerek tekrar deneyebilirsiniz." })] })] }), lastRawData && (_jsxs("div", { className: "bg-black/40 border border-white/5 p-4 rounded-2xl", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2 text-[10px] font-black text-armoyu-text-muted uppercase tracking-widest opacity-50", children: [_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", children: [_jsx("polyline", { points: "4 17 10 11 4 5" }), _jsx("line", { x1: "12", y1: "19", x2: "20", y2: "19" })] }), "API YANITI (RAW)"] }), _jsx("pre", { className: "text-[10px] font-mono text-blue-400 overflow-x-auto p-2 bg-black/20 rounded-lg", children: JSON.stringify(lastRawData, null, 2) })] }))] })), _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-12 gap-8", children: [_jsx("aside", { className: "lg:col-span-3 hidden lg:block", children: _jsx(AuthSidebarLeft, {}) }), _jsxs("div", { className: "lg:col-span-9 space-y-8", children: [_jsx(Stories, {}), _jsx("div", { className: "flex flex-col gap-6 max-w-2xl mx-auto", children: displayPosts.map((post) => (_jsx(PostCard, { ...post, author: post.owner || post.author }, post.id))) }), displayPosts.length === 0 && !loading && (_jsx("div", { className: "text-center py-24 border-2 border-dashed border-white/5 rounded-[3rem] bg-white/[0.02]", children: _jsx("p", { className: "text-armoyu-text-muted font-bold opacity-30 uppercase tracking-[0.3em] text-[10px]", children: "Hen\u00FCz yay\u0131nlanm\u0131\u015F bir g\u00F6nderi yok." }) })), useLive && displayPosts.length > 0 && hasMore && (_jsx("div", { className: "flex justify-center mt-6", children: _jsx("button", { onClick: () => fetchLivePosts(true), disabled: loading, className: "px-6 py-3 bg-blue-600 hover:bg-blue-500 disabled:bg-blue-600/50 text-white rounded-2xl text-xs font-black uppercase tracking-widest transition-all shadow-lg shadow-blue-600/20 active:scale-95 flex items-center gap-2", children: loading ? (_jsxs(_Fragment, { children: [_jsx(RefreshCcw, { className: "w-4 h-4 animate-spin" }), " Y\u00DCKLEN\u0130YOR..."] })) : "DAHA FAZLA GÖSTER" }) }))] })] })] }));
|
|
47
100
|
}
|
|
48
|
-
// Minimal cn implementation for simplicity here
|
|
49
101
|
function cn(...classes) {
|
|
50
102
|
return classes.filter(Boolean).join(' ');
|
|
51
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialTab.js","sourceRoot":"","sources":["../../../src/components/showcase/SocialTab.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SocialTab.js","sourceRoot":"","sources":["../../../src/components/showcase/SocialTab.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ArmoyuUI } from '../lib/ArmoyuUI';
|
|
3
|
+
export interface ArmoyuNavigationConfig {
|
|
4
|
+
profilePrefix?: string;
|
|
5
|
+
groupPrefix?: string;
|
|
6
|
+
forumPrefix?: string;
|
|
7
|
+
educationPrefix?: string;
|
|
8
|
+
newsPrefix?: string;
|
|
9
|
+
galleryPrefix?: string;
|
|
10
|
+
giveawayPrefix?: string;
|
|
11
|
+
projectPrefix?: string;
|
|
12
|
+
storePrefix?: string;
|
|
13
|
+
managementPrefix?: string;
|
|
14
|
+
myArticlesPrefix?: string;
|
|
15
|
+
pollPrefix?: string;
|
|
16
|
+
supportPrefix?: string;
|
|
17
|
+
}
|
|
18
|
+
interface ArmoyuContextType {
|
|
19
|
+
ui: ArmoyuUI;
|
|
20
|
+
api: ArmoyuUI['api'];
|
|
21
|
+
apiKey: string;
|
|
22
|
+
token: string;
|
|
23
|
+
navigation: Required<ArmoyuNavigationConfig>;
|
|
24
|
+
setGlobalApiKey: (key: string) => void;
|
|
25
|
+
setGlobalToken: (token: string) => void;
|
|
26
|
+
}
|
|
27
|
+
export interface ArmoyuProviderProps {
|
|
28
|
+
children: ReactNode;
|
|
29
|
+
ui: ArmoyuUI;
|
|
30
|
+
navigation?: ArmoyuNavigationConfig;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* ArmoyuProvider provides the global ArmoyuUI instance to all UI components.
|
|
34
|
+
* This is required for any component that interacts with the ARMOYU backend.
|
|
35
|
+
*/
|
|
36
|
+
export declare function ArmoyuProvider({ children, ui, navigation }: ArmoyuProviderProps): import("react/jsx-runtime").JSX.Element | null;
|
|
37
|
+
/**
|
|
38
|
+
* Custom hook to access the ArmoyuApi instance.
|
|
39
|
+
*/
|
|
40
|
+
export declare function useArmoyu(): ArmoyuContextType;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=ArmoyuContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArmoyuContext.d.ts","sourceRoot":"","sources":["../../src/context/ArmoyuContext.tsx"],"names":[],"mappings":"AAEA,OAAc,EAA6B,SAAS,EAAoC,MAAM,OAAO,CAAC;AACtG,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,iBAAiB;IACzB,EAAE,EAAE,QAAQ,CAAC;IACb,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC7C,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAID,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,EAAE,EAAE,QAAQ,CAAC;IACb,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,mBAAmB,kDAmE/E;AAED;;GAEG;AACH,wBAAgB,SAAS,sBAMxB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext, useState, useCallback, useEffect } from 'react';
|
|
4
|
+
const ArmoyuContext = createContext(undefined);
|
|
5
|
+
/**
|
|
6
|
+
* ArmoyuProvider provides the global ArmoyuUI instance to all UI components.
|
|
7
|
+
* This is required for any component that interacts with the ARMOYU backend.
|
|
8
|
+
*/
|
|
9
|
+
export function ArmoyuProvider({ children, ui, navigation }) {
|
|
10
|
+
const [apiKey, setApiKey] = useState('armoyu_showcase_key');
|
|
11
|
+
const [token, setToken] = useState('');
|
|
12
|
+
const [isMounted, setIsMounted] = useState(false);
|
|
13
|
+
// Sadece istemci tarafında localStorage'dan yükle
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
setIsMounted(true);
|
|
16
|
+
const savedApiKey = localStorage.getItem('armoyu_showcase_apiKey');
|
|
17
|
+
const savedToken = localStorage.getItem('armoyu_showcase_token');
|
|
18
|
+
if (savedApiKey) {
|
|
19
|
+
setApiKey(savedApiKey);
|
|
20
|
+
ui.api.setApiKey(savedApiKey);
|
|
21
|
+
}
|
|
22
|
+
if (savedToken) {
|
|
23
|
+
setToken(savedToken);
|
|
24
|
+
ui.api.setToken(savedToken);
|
|
25
|
+
}
|
|
26
|
+
}, [ui]);
|
|
27
|
+
const setGlobalApiKey = useCallback((key) => {
|
|
28
|
+
setApiKey(key);
|
|
29
|
+
ui.api.setApiKey(key);
|
|
30
|
+
localStorage.setItem('armoyu_showcase_apiKey', key);
|
|
31
|
+
}, [ui]);
|
|
32
|
+
const setGlobalToken = useCallback((t) => {
|
|
33
|
+
setToken(t);
|
|
34
|
+
ui.api.setToken(t);
|
|
35
|
+
localStorage.setItem('armoyu_showcase_token', t);
|
|
36
|
+
}, [ui]);
|
|
37
|
+
if (!isMounted || !ui) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const defaultNavigation = {
|
|
41
|
+
profilePrefix: '/oyuncular',
|
|
42
|
+
groupPrefix: '/gruplar',
|
|
43
|
+
forumPrefix: '/forum',
|
|
44
|
+
educationPrefix: '/egitim',
|
|
45
|
+
newsPrefix: '/haberler',
|
|
46
|
+
galleryPrefix: '/galeriler',
|
|
47
|
+
giveawayPrefix: '/cekilisler',
|
|
48
|
+
projectPrefix: '/projeler',
|
|
49
|
+
storePrefix: '/magaza',
|
|
50
|
+
managementPrefix: '/yonetim',
|
|
51
|
+
myArticlesPrefix: '/yazilarim',
|
|
52
|
+
pollPrefix: '/anketler',
|
|
53
|
+
supportPrefix: '/destek',
|
|
54
|
+
...navigation
|
|
55
|
+
};
|
|
56
|
+
return (_jsx(ArmoyuContext.Provider, { value: {
|
|
57
|
+
ui,
|
|
58
|
+
api: ui.api,
|
|
59
|
+
apiKey,
|
|
60
|
+
token,
|
|
61
|
+
navigation: defaultNavigation,
|
|
62
|
+
setGlobalApiKey,
|
|
63
|
+
setGlobalToken
|
|
64
|
+
}, children: children }));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Custom hook to access the ArmoyuApi instance.
|
|
68
|
+
*/
|
|
69
|
+
export function useArmoyu() {
|
|
70
|
+
const context = useContext(ArmoyuContext);
|
|
71
|
+
if (context === undefined) {
|
|
72
|
+
throw new Error('useArmoyu must be used within an ArmoyuProvider');
|
|
73
|
+
}
|
|
74
|
+
return context;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=ArmoyuContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArmoyuContext.js","sourceRoot":"","sources":["../../src/context/ArmoyuContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../../src/context/AuthContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../../src/context/AuthContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG7C,UAAU,eAAe;IACvB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,UAAU,EAAE,CAAC,WAAW,EAAE,IAAI,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAID,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAmGvE;AAED,wBAAgB,OAAO,oBAMtB"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { createContext, useContext, useState, useEffect } from 'react';
|
|
4
|
-
import { Session
|
|
4
|
+
import { Session } from '@armoyu/core';
|
|
5
|
+
import { useArmoyu } from './ArmoyuContext';
|
|
5
6
|
const AuthContext = createContext(undefined);
|
|
6
7
|
export function AuthProvider({ children }) {
|
|
8
|
+
const { api } = useArmoyu();
|
|
7
9
|
const [user, setUser] = useState(null);
|
|
8
10
|
const [session, setSession] = useState(null);
|
|
9
11
|
const [isLoading, setIsLoading] = useState(true);
|
|
@@ -15,9 +17,9 @@ export function AuthProvider({ children }) {
|
|
|
15
17
|
if (token) {
|
|
16
18
|
try {
|
|
17
19
|
// Set token in core API client
|
|
18
|
-
|
|
20
|
+
api.setToken(token);
|
|
19
21
|
// Request current user profile from real API
|
|
20
|
-
const me = await
|
|
22
|
+
const me = await api.auth.me();
|
|
21
23
|
if (me) {
|
|
22
24
|
setUser(me);
|
|
23
25
|
setSession(new Session({ user: me, token }));
|
|
@@ -26,13 +28,13 @@ export function AuthProvider({ children }) {
|
|
|
26
28
|
else {
|
|
27
29
|
// Token might be expired or invalid
|
|
28
30
|
localStorage.removeItem('armoyu_token');
|
|
29
|
-
|
|
31
|
+
api.setToken(null);
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
34
|
catch (e) {
|
|
33
35
|
console.error('[AuthContext] Failed to restore session:', e);
|
|
34
36
|
localStorage.removeItem('armoyu_token');
|
|
35
|
-
|
|
37
|
+
api.setToken(null);
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
setIsLoading(false);
|
|
@@ -42,11 +44,13 @@ export function AuthProvider({ children }) {
|
|
|
42
44
|
const login = async (username, password) => {
|
|
43
45
|
try {
|
|
44
46
|
// Real API login via core library
|
|
45
|
-
const { user: loggedInUser, session: newSession } = await
|
|
47
|
+
const { user: loggedInUser, session: newSession } = await api.auth.login(username, password);
|
|
46
48
|
setUser(loggedInUser);
|
|
47
49
|
setSession(newSession);
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
+
// Store token in localStorage since Core library is now stateless
|
|
51
|
+
if (newSession.token) {
|
|
52
|
+
localStorage.setItem('armoyu_token', newSession.token);
|
|
53
|
+
}
|
|
50
54
|
console.log('[AuthContext] Login successful for:', loggedInUser.username);
|
|
51
55
|
setIsLoginModalOpen(false);
|
|
52
56
|
}
|
|
@@ -56,7 +60,7 @@ export function AuthProvider({ children }) {
|
|
|
56
60
|
}
|
|
57
61
|
};
|
|
58
62
|
const logout = () => {
|
|
59
|
-
|
|
63
|
+
api.auth.logout(); // Clears internal state and localStorage
|
|
60
64
|
setUser(null);
|
|
61
65
|
setSession(null);
|
|
62
66
|
};
|
|
@@ -69,7 +73,7 @@ export function AuthProvider({ children }) {
|
|
|
69
73
|
const updateSession = (updatedSession) => {
|
|
70
74
|
setSession(updatedSession);
|
|
71
75
|
if (updatedSession.token) {
|
|
72
|
-
|
|
76
|
+
api.setToken(updatedSession.token);
|
|
73
77
|
}
|
|
74
78
|
};
|
|
75
79
|
return (_jsx(AuthContext.Provider, { value: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthContext.js","sourceRoot":"","sources":["../../src/context/AuthContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAQ,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"AuthContext.js","sourceRoot":"","sources":["../../src/context/AuthContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketContext.d.ts","sourceRoot":"","sources":["../../src/context/SocketContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"SocketContext.d.ts","sourceRoot":"","sources":["../../src/context/SocketContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,UAAU,iBAAiB;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAE9C,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CACvE;AAID,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CA0BzE;AAED,wBAAgB,SAAS,sBAMxB"}
|