import React from 'react';
import Scheduler, { Resource } from 'devextreme-react/scheduler';
import type { SchedulerTypes } from 'devextreme-react/scheduler';
import { data, resourcesData } from './data.ts';
const currentDate = new Date(2021, 2, 25);
const views: SchedulerTypes.Properties['views'] = [{
type: 'month',
name: 'Auto Mode',
maxAppointmentsPerCell: 'auto',
}, {
type: 'month',
name: 'Unlimited Mode',
maxAppointmentsPerCell: 'unlimited',
}, {
type: 'month',
name: 'Numeric Mode',
maxAppointmentsPerCell: 2,
}];
const App = () => (
<Scheduler
timeZone="America/Los_Angeles"
dataSource={data}
views={views}
defaultCurrentView="Auto Mode"
defaultCurrentDate={currentDate}
height={730}
>
<Resource
dataSource={resourcesData}
fieldExpr="roomId"
label="Room"
icon="conferenceroomoutline"
/>
</Scheduler>
);
export default App;
import React from 'react';
import Scheduler, { Resource } from 'devextreme-react/scheduler';
import { data, resourcesData } from './data.js';
const currentDate = new Date(2021, 2, 25);
const views = [
{
type: 'month',
name: 'Auto Mode',
maxAppointmentsPerCell: 'auto',
},
{
type: 'month',
name: 'Unlimited Mode',
maxAppointmentsPerCell: 'unlimited',
},
{
type: 'month',
name: 'Numeric Mode',
maxAppointmentsPerCell: 2,
},
];
const App = () => (
<Scheduler
timeZone="America/Los_Angeles"
dataSource={data}
views={views}
defaultCurrentView="Auto Mode"
defaultCurrentDate={currentDate}
height={730}
>
<Resource
dataSource={resourcesData}
fieldExpr="roomId"
label="Room"
icon="conferenceroomoutline"
/>
</Scheduler>
);
export default App;
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.tsx';
ReactDOM.render(
<App />,
document.getElementById('app'),
);
import type { SchedulerTypes } from 'devextreme-react/scheduler';
type Appointment = SchedulerTypes.Appointment & { roomId: number };
type Resource = {
text: string;
id: number;
color: string;
};
export const data: Appointment[] = [
{
text: 'Google AdWords Strategy',
roomId: 1,
startDate: new Date('2021-03-05T16:00:00.000Z'),
endDate: new Date('2021-03-05T17:30:00.000Z'),
}, {
text: 'New Brochures',
roomId: 5,
startDate: new Date('2021-03-05T18:30:00.000Z'),
endDate: new Date('2021-03-05T21:15:00.000Z'),
}, {
text: 'Brochure Design Review',
roomId: 5,
startDate: new Date('2021-03-05T20:15:00.000Z'),
endDate: new Date('2021-03-05T23:15:00.000Z'),
}, {
text: 'Website Re-Design Plan',
roomId: 5,
startDate: new Date('2021-03-05T23:45:00.000Z'),
endDate: new Date('2021-03-05T18:15:00.000Z'),
}, {
text: 'Rollout of New Website and Marketing Brochures',
roomId: 2,
startDate: new Date('2021-03-09T15:15:00.000Z'),
endDate: new Date('2021-03-09T17:45:00.000Z'),
}, {
text: 'Update Sales Strategy Documents',
roomId: 3,
startDate: new Date('2021-03-09T19:00:00.000Z'),
endDate: new Date('2021-03-09T20:45:00.000Z'),
}, {
text: 'Non-Compete Agreements',
roomId: 3,
startDate: new Date('2021-03-09T15:15:00.000Z'),
endDate: new Date('2021-03-09T16:00:00.000Z'),
}, {
text: 'Update NDA Agreement',
roomId: 1,
startDate: new Date('2021-03-10T18:45:00.000Z'),
endDate: new Date('2021-03-10T20:45:00.000Z'),
}, {
text: 'Update Employee Files with New NDA',
roomId: 4,
startDate: new Date('2021-03-18T21:00:00.000Z'),
endDate: new Date('2021-03-18T23:45:00.000Z'),
}, {
text: 'Submit Questions Regarding New NDA',
roomId: 4,
startDate: new Date('2021-03-18T15:00:00.000Z'),
endDate: new Date('2021-03-18T16:30:00.000Z'),
}, {
text: 'Submit Signed NDA',
roomId: 4,
startDate: new Date('2021-03-18T19:45:00.000Z'),
endDate: new Date('2021-03-18T21:00:00.000Z'),
}, {
text: 'Review Revenue Projections',
roomId: 4,
startDate: new Date('2021-03-26T00:15:00.000Z'),
endDate: new Date('2021-03-26T01:00:00.000Z'),
}, {
text: 'Comment on Revenue Projections',
roomId: 1,
startDate: new Date('2021-03-22T16:15:00.000Z'),
endDate: new Date('2021-03-22T18:15:00.000Z'),
}, {
text: 'Provide New Health Insurance Docs',
roomId: 4,
startDate: new Date('2021-03-22T19:45:00.000Z'),
endDate: new Date('2021-03-22T21:15:00.000Z'),
}, {
text: 'Review Changes to Health Insurance Coverage',
roomId: 4,
startDate: new Date('2021-03-25T21:15:00.000Z'),
endDate: new Date('2021-03-25T22:30:00.000Z'),
}, {
text: 'Review Training Course for any Omissions',
roomId: 4,
startDate: new Date('2021-03-22T21:00:00.000Z'),
endDate: new Date('2021-03-22T19:00:00.000Z'),
}, {
text: 'Recall Rebate Form',
roomId: 2,
startDate: new Date('2021-03-23T19:45:00.000Z'),
endDate: new Date('2021-03-23T20:15:00.000Z'),
}, {
text: 'Create Report on Customer Feedback',
roomId: 3,
startDate: new Date('2021-03-23T22:15:00.000Z'),
endDate: new Date('2021-03-24T00:30:00.000Z'),
}, {
text: 'Review Customer Feedback Report',
roomId: 3,
startDate: new Date('2021-03-17T23:15:00.000Z'),
endDate: new Date('2021-03-18T01:30:00.000Z'),
}, {
text: 'Customer Feedback Report Analysis',
roomId: 3,
startDate: new Date('2021-03-17T16:30:00.000Z'),
endDate: new Date('2021-03-17T17:30:00.000Z'),
}, {
text: 'Prepare Shipping Cost Analysis Report',
roomId: 3,
startDate: new Date('2021-03-23T19:30:00.000Z'),
endDate: new Date('2021-03-23T20:30:00.000Z'),
}, {
text: 'Provide Feedback on Shippers',
roomId: 3,
startDate: new Date('2021-03-23T21:15:00.000Z'),
endDate: new Date('2021-03-23T23:00:00.000Z'),
}, {
text: 'Select Preferred Shipper',
roomId: 1,
startDate: new Date('2021-03-27T00:30:00.000Z'),
endDate: new Date('2021-03-27T03:00:00.000Z'),
}, {
text: 'Complete Shipper Selection Form',
roomId: 5,
startDate: new Date('2021-03-25T15:30:00.000Z'),
endDate: new Date('2021-03-25T17:00:00.000Z'),
}, {
text: 'Upgrade Server Hardware',
roomId: 5,
startDate: new Date('2021-03-26T19:00:00.000Z'),
endDate: new Date('2021-03-26T21:15:00.000Z'),
}, {
text: 'Upgrade Personal Computers',
roomId: 5,
startDate: new Date('2021-03-26T21:45:00.000Z'),
endDate: new Date('2021-03-26T23:30:00.000Z'),
},
];
export const resourcesData: Resource[] = [
{
text: 'Room 401',
id: 1,
color: '#1564C0',
}, {
text: 'Room 402',
id: 2,
color: '#C2185B',
}, {
text: 'Room 403',
id: 3,
color: '#7B1FA2',
}, {
text: 'Room 407',
id: 4,
color: '#DD2C00',
}, {
text: 'Room 409',
id: 5,
color: '#2E7D32',
},
];
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.js';
ReactDOM.render(<App />, document.getElementById('app'));
export const data = [
{
text: 'Google AdWords Strategy',
roomId: 1,
startDate: new Date('2021-03-05T16:00:00.000Z'),
endDate: new Date('2021-03-05T17:30:00.000Z'),
},
{
text: 'New Brochures',
roomId: 5,
startDate: new Date('2021-03-05T18:30:00.000Z'),
endDate: new Date('2021-03-05T21:15:00.000Z'),
},
{
text: 'Brochure Design Review',
roomId: 5,
startDate: new Date('2021-03-05T20:15:00.000Z'),
endDate: new Date('2021-03-05T23:15:00.000Z'),
},
{
text: 'Website Re-Design Plan',
roomId: 5,
startDate: new Date('2021-03-05T23:45:00.000Z'),
endDate: new Date('2021-03-05T18:15:00.000Z'),
},
{
text: 'Rollout of New Website and Marketing Brochures',
roomId: 2,
startDate: new Date('2021-03-09T15:15:00.000Z'),
endDate: new Date('2021-03-09T17:45:00.000Z'),
},
{
text: 'Update Sales Strategy Documents',
roomId: 3,
startDate: new Date('2021-03-09T19:00:00.000Z'),
endDate: new Date('2021-03-09T20:45:00.000Z'),
},
{
text: 'Non-Compete Agreements',
roomId: 3,
startDate: new Date('2021-03-09T15:15:00.000Z'),
endDate: new Date('2021-03-09T16:00:00.000Z'),
},
{
text: 'Update NDA Agreement',
roomId: 1,
startDate: new Date('2021-03-10T18:45:00.000Z'),
endDate: new Date('2021-03-10T20:45:00.000Z'),
},
{
text: 'Update Employee Files with New NDA',
roomId: 4,
startDate: new Date('2021-03-18T21:00:00.000Z'),
endDate: new Date('2021-03-18T23:45:00.000Z'),
},
{
text: 'Submit Questions Regarding New NDA',
roomId: 4,
startDate: new Date('2021-03-18T15:00:00.000Z'),
endDate: new Date('2021-03-18T16:30:00.000Z'),
},
{
text: 'Submit Signed NDA',
roomId: 4,
startDate: new Date('2021-03-18T19:45:00.000Z'),
endDate: new Date('2021-03-18T21:00:00.000Z'),
},
{
text: 'Review Revenue Projections',
roomId: 4,
startDate: new Date('2021-03-26T00:15:00.000Z'),
endDate: new Date('2021-03-26T01:00:00.000Z'),
},
{
text: 'Comment on Revenue Projections',
roomId: 1,
startDate: new Date('2021-03-22T16:15:00.000Z'),
endDate: new Date('2021-03-22T18:15:00.000Z'),
},
{
text: 'Provide New Health Insurance Docs',
roomId: 4,
startDate: new Date('2021-03-22T19:45:00.000Z'),
endDate: new Date('2021-03-22T21:15:00.000Z'),
},
{
text: 'Review Changes to Health Insurance Coverage',
roomId: 4,
startDate: new Date('2021-03-25T21:15:00.000Z'),
endDate: new Date('2021-03-25T22:30:00.000Z'),
},
{
text: 'Review Training Course for any Omissions',
roomId: 4,
startDate: new Date('2021-03-22T21:00:00.000Z'),
endDate: new Date('2021-03-22T19:00:00.000Z'),
},
{
text: 'Recall Rebate Form',
roomId: 2,
startDate: new Date('2021-03-23T19:45:00.000Z'),
endDate: new Date('2021-03-23T20:15:00.000Z'),
},
{
text: 'Create Report on Customer Feedback',
roomId: 3,
startDate: new Date('2021-03-23T22:15:00.000Z'),
endDate: new Date('2021-03-24T00:30:00.000Z'),
},
{
text: 'Review Customer Feedback Report',
roomId: 3,
startDate: new Date('2021-03-17T23:15:00.000Z'),
endDate: new Date('2021-03-18T01:30:00.000Z'),
},
{
text: 'Customer Feedback Report Analysis',
roomId: 3,
startDate: new Date('2021-03-17T16:30:00.000Z'),
endDate: new Date('2021-03-17T17:30:00.000Z'),
},
{
text: 'Prepare Shipping Cost Analysis Report',
roomId: 3,
startDate: new Date('2021-03-23T19:30:00.000Z'),
endDate: new Date('2021-03-23T20:30:00.000Z'),
},
{
text: 'Provide Feedback on Shippers',
roomId: 3,
startDate: new Date('2021-03-23T21:15:00.000Z'),
endDate: new Date('2021-03-23T23:00:00.000Z'),
},
{
text: 'Select Preferred Shipper',
roomId: 1,
startDate: new Date('2021-03-27T00:30:00.000Z'),
endDate: new Date('2021-03-27T03:00:00.000Z'),
},
{
text: 'Complete Shipper Selection Form',
roomId: 5,
startDate: new Date('2021-03-25T15:30:00.000Z'),
endDate: new Date('2021-03-25T17:00:00.000Z'),
},
{
text: 'Upgrade Server Hardware',
roomId: 5,
startDate: new Date('2021-03-26T19:00:00.000Z'),
endDate: new Date('2021-03-26T21:15:00.000Z'),
},
{
text: 'Upgrade Personal Computers',
roomId: 5,
startDate: new Date('2021-03-26T21:45:00.000Z'),
endDate: new Date('2021-03-26T23:30:00.000Z'),
},
];
export const resourcesData = [
{
text: 'Room 401',
id: 1,
color: '#1564C0',
},
{
text: 'Room 402',
id: 2,
color: '#C2185B',
},
{
text: 'Room 403',
id: 3,
color: '#7B1FA2',
},
{
text: 'Room 407',
id: 4,
color: '#DD2C00',
},
{
text: 'Room 409',
id: 5,
color: '#2E7D32',
},
];
<!DOCTYPE html>
<html lang="en">
<head>
<title>DevExtreme Demo</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0" />
<link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/26.1.5/css/dx.light.css" />
<link rel="stylesheet" type="text/css" href="styles.css" />
</head>
<body class="dx-viewport">
<div class="demo-container">
<div id="app"></div>
</div>
<script src="bundles/vendor/react.vendor.js"></script>
<script src="./bundle.js"></script>
</body>
</html>