Skip to content
33 changes: 18 additions & 15 deletions src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { IonReactRouter } from "@ionic/react-router";
import { Route, Redirect } from "react-router-dom";
import Home from "./pages/Home";
import MeshKitPage from "./pages/MeshKit";
import { StoreProvider } from "./contexts/StoreContext";

/* Core CSS required for Ionic components to work properly */
import "@ionic/react/css/core.css";
Expand All @@ -26,21 +27,23 @@ import "./theme/variables.css";
setupIonicReact();

const App: React.FC = () => (
<IonApp>
<IonReactRouter>
<IonRouterOutlet>
<Route exact path="/home">
<Home />
</Route>
<Route exact path="/meshkit">
<MeshKitPage />
</Route>
<Route exact path="/">
<Redirect to="/home" />
</Route>
</IonRouterOutlet>
</IonReactRouter>
</IonApp>
<StoreProvider>
<IonApp>
<IonReactRouter>
<IonRouterOutlet>
<Route exact path="/home">
<Home />
</Route>
<Route exact path="/meshkit">
<MeshKitPage />
</Route>
<Route exact path="/">
<Redirect to="/home" />
</Route>
</IonRouterOutlet>
</IonReactRouter>
</IonApp>
</StoreProvider>
);

export default App;
17 changes: 10 additions & 7 deletions src/components/Dashboard/Dashboard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,24 @@ import {
documentTextOutline, cloudUploadOutline, cloudDownloadOutline, shareSocialOutline, trashOutline,
addCircleOutline, serverOutline, hardwareChipOutline, openOutline, timeOutline, statsChartOutline, searchOutline, documentOutline
} from "ionicons/icons";
import { Local, File as LocalFile, BackupRecord, ActivityLog, AppMetrics } from "../Storage/LocalStorage";
import { File as LocalFile, BackupRecord, ActivityLog, AppMetrics } from "../Storage/LocalStorage";
import { backupInvoiceToIPFS, restoreInvoiceFromIPFS, testConnection } from "../../services/MeshkitService";
import { BackupSuccessModal } from "../Modals/BackupSuccessModal";
import { RestoreSuccessModal } from "../Modals/RestoreSuccessModal";
import * as AppGeneral from "../socialcalc/index.js";
import { useHistory } from "react-router";
import { DATA } from "../../app-data.js";
import { useStore } from "../../contexts/StoreContext";
import { useInvoice } from "../../contexts/InvoiceContext";

interface DashboardProps {
store: Local;
onOpenFile: (key: string, billType: number) => void;
currentBillType: number;
}

const Dashboard: React.FC<DashboardProps> = ({ store, onOpenFile, currentBillType }) => {
const Dashboard: React.FC<DashboardProps> = ({ onOpenFile }) => {
const store = useStore();
const { billType } = useInvoice();

const [fileList, setFileList] = useState<{ [key: string]: any }>({});
const [backupHistory, setBackupHistory] = useState<BackupRecord[]>([]);
const [activityLogs, setActivityLogs] = useState<ActivityLog[]>([]);
Expand Down Expand Up @@ -204,7 +207,7 @@ const Dashboard: React.FC<DashboardProps> = ({ store, onOpenFile, currentBillTyp
return;
}
const content = encodeURIComponent(JSON.stringify(DATA["home"][AppGeneral.getDeviceType()]["msc"]));
const file = new LocalFile(new Date().toString(), new Date().toString(), content, filename, currentBillType);
const file = new LocalFile(new Date().toString(), new Date().toString(), content, filename, billType);
await store._saveFile(file);
await store._incrementMetric('invoicesCreated');
await store._logActivity({ type: 'CREATE', description: `Created new invoice ${filename}` });
Expand Down Expand Up @@ -316,12 +319,12 @@ const Dashboard: React.FC<DashboardProps> = ({ store, onOpenFile, currentBillTyp
<IonButton size="small" fill="outline" onClick={() => handleBackup(key)}>
<IonIcon icon={cloudUploadOutline} slot="start" /> Backup
</IonButton>
{fileList[key].backedUp && (
{fileList[key].backedUp && fileList[key].cid && (
<IonButton size="small" fill="outline" color="secondary" onClick={() => handleRestore(fileList[key].cid, key)}>
<IonIcon icon={cloudDownloadOutline} slot="start" /> Restore
</IonButton>
)}
{fileList[key].backedUp && (
{fileList[key].backedUp && fileList[key].cid && (
<IonButton size="small" fill="outline" color="tertiary" onClick={() => handleShare(fileList[key].cid)}>
<IonIcon icon={shareSocialOutline} slot="start" /> Share
</IonButton>
Expand Down
30 changes: 0 additions & 30 deletions src/components/Files/Files.css

This file was deleted.

Loading