Skip to content

Commit

Permalink
Merge pull request #1 from DmytroFrame/redesign
Browse files Browse the repository at this point in the history
Redesign
  • Loading branch information
DmytroFrame authored Mar 4, 2023
2 parents 509b7de + 2e274f2 commit 86295b0
Show file tree
Hide file tree
Showing 15 changed files with 2,040 additions and 244 deletions.
2,006 changes: 1,962 additions & 44 deletions package-lock.json

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,12 @@
"preview": "vite preview"
},
"dependencies": {
"antd": "^5.2.3",
"axios": "^1.3.4",
"moment": "^2.29.4",
"react": "^18.2.0",
"react-dom": "^18.2.0"
"react-dom": "^18.2.0",
"react-query": "^3.39.3"
},
"devDependencies": {
"@types/react": "^18.0.27",
Expand Down
47 changes: 26 additions & 21 deletions src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,29 +1,34 @@
import { useState, useEffect } from "react";
import React from "react";
import "./App.css";
import { getSchedules } from "./api/getSchedules";

import Schedule from "./components/Schedule/Schedule";
import WeekBar from "./components/WeekBar/WeekBar";
import {useQuery} from "react-query";
import {Alert, Divider, Space, Spin, Tabs, Timeline, Typography} from 'antd';
import axios from "axios";
import ErrorAlert from "./components/Ui/ErrorAlert.jsx";
import LoadingSpinner from "./components/Ui/LoadingSpinner.jsx";
import LessonsTab from "./components/LessonsTabs.jsx";
const { Title, Paragraph } = Typography;

function App() {
const [schedules, setSchedules] = useState([]);
const [currentSchedule, setCurrentSchedule] = useState({});

useEffect(() => {
getSchedules().then((res) => {
setSchedules(res);
setCurrentSchedule(res[0]);
});
}, []);
const { isLoading, error, data } = useQuery("schedules", () =>
axios
.get("https://api.dmytroframe.site/ukd/schedules?group=ІПЗс-19")
.then((response) => response.data)
);

return (
return (
<div className="App">
<WeekBar
schedules={schedules}
currentSchedule={currentSchedule}
setCurrentSchedule={setCurrentSchedule}
/>
<Schedule currentSchedule={currentSchedule} />
<Typography>
<Title>Pidval project presents:</Title>
<Paragraph>
The most useless scheduler in your life.
Better go to stroika
</Paragraph>
</Typography>
<Divider />

{ error && <ErrorAlert /> }
{ isLoading && <LoadingSpinner /> }
{ data && <LessonsTab lessonsData={data} />}
</div>
);
}
Expand Down
6 changes: 0 additions & 6 deletions src/api/getSchedules.js

This file was deleted.

17 changes: 17 additions & 0 deletions src/components/LessonsTabs.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import {Tabs, Timeline} from "antd";
import React from "react";

export default function LessonsTab({ lessonsData }) {
return (
<Tabs
tabPosition={'left'}
items={lessonsData?.map(_data => ({
label: _data.weekName,
key: Math.random(),
children: <Timeline style={{textAlign: 'left'}}
items={_data.lessons.map(lesson => ({children: `${lesson.date} - ${lesson.title}`}))}
/>,
}))}
/>
);
}
17 changes: 0 additions & 17 deletions src/components/Schedule/Schedule.jsx

This file was deleted.

Empty file.
19 changes: 0 additions & 19 deletions src/components/ScheduleItem/ScheduleItem.jsx

This file was deleted.

39 changes: 0 additions & 39 deletions src/components/ScheduleItem/ScheduleItem.scss

This file was deleted.

14 changes: 14 additions & 0 deletions src/components/Ui/ErrorAlert.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import {Alert, Space} from "antd";

export default function ErrorAlert() {
return (
<Space direction="vertical" style={{ width: '100%'}}>
<Alert
message="Error"
description="Не вдається получити дані з серверу"
type="error"
showIcon
/>
</Space>
);
}
10 changes: 10 additions & 0 deletions src/components/Ui/LoadingSpinner.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import {Space, Spin} from "antd";
import React from "react";

export default function LoadingSpinner() {
return (
<Space size="middle" style={{ marginTop: '50px'}}>
<Spin size="large" />
</Space>
)
}
41 changes: 0 additions & 41 deletions src/components/WeekBar/WeekBar.jsx

This file was deleted.

34 changes: 0 additions & 34 deletions src/components/WeekBar/WeekBar.scss

This file was deleted.

21 changes: 0 additions & 21 deletions src/handles/scheduleHandle.js

This file was deleted.

7 changes: 6 additions & 1 deletion src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,14 @@ import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
import './index.css'
import {QueryClient, QueryClientProvider} from "react-query";

const queryClient = new QueryClient();

ReactDOM.createRoot(document.getElementById('root')).render(
<React.StrictMode>
<App />
<QueryClientProvider client={queryClient}>
<App />
</QueryClientProvider>
</React.StrictMode>,
)

0 comments on commit 86295b0

Please sign in to comment.