import MediaFormView from './views/Media/MediaFormView';
import PostsView from './views/Posts/PostsView';
import PostFormView from './views/Posts/PostFormView';
+import { useContext } from 'react';
+import { AuthContext } from './components/AuthContext';
export default function AppRoutes() {
+ const { user } = useContext( AuthContext );
+ const privateRoutes = [
+ <Route path="/git" element={ <Git /> } />,
+ <Route path="/vpn" element={ <VPNProvider><VPN/></VPNProvider> } />,
+ <Route path="/docker" element={ <Docker /> } />,
+ <Route path="/messages" element={<MessagesView />} />,
+ <Route path="/messages/new" element={<MessageFormView />} />,
+ <Route path="/messages/group/:group_id" element={<ChatView />} />,
+ <Route path="/messages/recipient/:recipient_id" element={<ChatView />} />,
+ <Route path="/message-groups" element={<MessageGroupsView />} />,
+ <Route path="/message-groups/new" element={<MessageGroupFormView />} />,
+ <Route path="/message-groups/:group_id/members" element={<MessageGroupMembersView />} />,
+ <Route path="/message-groups/:group_id/members/new" element={<MessageGroupMemberFormView />} />,
+ <Route path="/media" element={<MediaView />} />,
+ <Route path="/media/new" element={<MediaFormView />} />,
+ <Route path="/posts" element={<PostsView />} />,
+ <Route path="/posts/new" element={<PostFormView />} />,
+ <Route path="*" element={ <NotFound /> } />,
+ <Route path="/" element={ <Dashboard /> } />
+ ]
return (
<Routes>
- <Route path="/" element={ <Dashboard /> } />
<Route path="/login" element={ <Login /> } />
- <Route path="/git" element={ <Git /> } />
- <Route path="/vpn" element={ <VPNProvider><VPN/></VPNProvider> } />
- <Route path="/docker" element={ <Docker /> } />
- <Route path="/messages" element={<MessagesView />} />
- <Route path="/messages/new" element={<MessageFormView />} />
- <Route path="/messages/group/:group_id" element={<ChatView />} />
- <Route path="/messages/recipient/:recipient_id" element={<ChatView />} />
- <Route path="/message-groups" element={<MessageGroupsView />} />
- <Route path="/message-groups/new" element={<MessageGroupFormView />} />
- <Route path="/message-groups/:group_id/members" element={<MessageGroupMembersView />} />
- <Route path="/message-groups/:group_id/members/new" element={<MessageGroupMemberFormView />} />
- <Route path="/media" element={<MediaView />} />
- <Route path="/media/new" element={<MediaFormView />} />
- <Route path="/posts" element={<PostsView />} />
- <Route path="/posts/new" element={<PostFormView />} />
- <Route path="*" element={ <NotFound /> } />
+ { user?.id && privateRoutes }
</Routes>
);
};