diff --git a/src/Components/IsNiftyOpenApp/App.tsx b/src/Components/IsNiftyOpenApp/App.tsx
index d299397..ae49c34 100644
--- a/src/Components/IsNiftyOpenApp/App.tsx
+++ b/src/Components/IsNiftyOpenApp/App.tsx
@@ -2,6 +2,7 @@ import * as React from 'react';
import { Switch, Route, Redirect } from 'react-router-dom';
import './App.css';
import { OpenXDay } from '../OpenXDay';
+import { OpenXDayMini } from '../OpenXDayMini';
import { allHolidays } from '../../Data';
import { Utils } from "../../Utils";
@@ -20,13 +21,25 @@ class IsNiftyOpenApp extends React.Component {
question = OpenXDay.OpenOrClose.Close;
}
+ const xDay = Utils.createTodayDateInIndiaTZ();
+ const XPlusOneDay = xDay.add(1, "d");
+
return (
-
-
+
);
}
diff --git a/src/Components/OpenXDayMini/Component.css b/src/Components/OpenXDayMini/Component.css
new file mode 100644
index 0000000..b07e789
--- /dev/null
+++ b/src/Components/OpenXDayMini/Component.css
@@ -0,0 +1,16 @@
+@import "../../Utils/utils.css";
+
+.OpenXDayMini {
+ width: 100%;
+ height: 100%;
+ font-size: 4em;
+ background-color: rgba(0, 0, 0, 0.75);
+}
+
+.OpenXDayMini.green {
+ background-color: #2ECC40;
+}
+
+.OpenXDayMini.red {
+ background-color: #FF4136;
+}
diff --git a/src/Components/OpenXDayMini/Component.tsx b/src/Components/OpenXDayMini/Component.tsx
new file mode 100644
index 0000000..e370f73
--- /dev/null
+++ b/src/Components/OpenXDayMini/Component.tsx
@@ -0,0 +1,87 @@
+import * as React from 'react';
+import * as moment from 'moment-timezone';
+import * as Linq from 'linq';
+import * as classnames from 'classnames';
+import "./Component.css";
+import { Holiday, HolidayList, getWeekendHoliday } from '../../Data/index';
+
+export interface OpenXDayProps {
+ xDay: moment.Moment;
+ dateDescription: string;
+ allHolidays: HolidayList;
+}
+
+export class OpenXDayMini extends React.Component
{
+ xDay: moment.Moment;
+ dateDescription: string;
+ allHolidays: HolidayList;
+
+ answer: { open: boolean, holiday: Holiday | undefined };
+
+ static checkSameDayInSameTZ(moment1: moment.Moment, moment2: moment.Moment, raiseErrorTZMismatch: boolean = true) {
+ // tslint:disable-next-line:triple-equals
+ if (raiseErrorTZMismatch && (moment1.tz() != moment2.tz())) {
+ throw new Error("Timezones don't match");
+ }
+
+ // tslint:disable-next-line:triple-equals
+ return (moment1.startOf("day").format() == moment2.startOf("day").format());
+ }
+
+ constructor(props: OpenXDayProps) {
+ super(props);
+ this.xDay = props.xDay;
+ this.dateDescription = props.dateDescription;
+ this.allHolidays = props.allHolidays;
+
+ this.processAnswer();
+ }
+
+ processAnswer(): void {
+ {
+ const matchingHoliday = Linq
+ .from(this.allHolidays)
+ .firstOrDefault(
+ (eachHoliday, _tmp) => OpenXDayMini.checkSameDayInSameTZ(this.xDay, eachHoliday.Date)
+ );
+
+ if (matchingHoliday === null) {
+ this.answer = { open: true, holiday: undefined };
+ } else {
+ this.answer = { open: false, holiday: matchingHoliday };
+ }
+ }
+
+ {
+ const weekendHoliday = getWeekendHoliday(this.xDay);
+
+ if (typeof weekendHoliday !== "undefined") {
+ this.answer = { open: false, holiday: weekendHoliday };
+ }
+ }
+ }
+
+ render() {
+ const bgColorClass = (this.answer.open ? "green" : "red");
+
+ return (
+
+
+
+ {this.answer.open ? "Open" : "Closed"}
+
+
+ {this.dateDescription}
+
+
+
+ );
+ }
+}
+
+export module OpenXDayMini {
+ export enum OpenOrClose {
+ Open = 'open',
+ Close = 'closed'
+ }
+}
\ No newline at end of file
diff --git a/src/Components/OpenXDayMini/index.tsx b/src/Components/OpenXDayMini/index.tsx
new file mode 100644
index 0000000..97be213
--- /dev/null
+++ b/src/Components/OpenXDayMini/index.tsx
@@ -0,0 +1 @@
+export { OpenXDayMini } from './Component';
\ No newline at end of file