108 lines
3.3 KiB
JavaScript
108 lines
3.3 KiB
JavaScript
(function () {
|
|
const RegistryApp = (window.RegistryApp = window.RegistryApp || {});
|
|
const { h } = RegistryApp.runtime;
|
|
const store = RegistryApp.store;
|
|
|
|
RegistryApp.components = RegistryApp.components || {};
|
|
|
|
RegistryApp.components.App = function App() {
|
|
const Navbar = window.SharedUI.componentFns.Navbar;
|
|
const Header = window.SharedUI.componentFns.Header;
|
|
const Footer = window.SharedUI.componentFns.Footer;
|
|
const HomeView = RegistryApp.componentFns.HomeView;
|
|
const RegistrationView = RegistryApp.componentFns.RegistrationView;
|
|
const PortalApp =
|
|
window.OrgPortal && window.OrgPortal.components
|
|
? window.OrgPortal.components.App
|
|
: null;
|
|
|
|
const view = store.getView();
|
|
const viewLabel =
|
|
view === "create"
|
|
? "Organization Registration"
|
|
: view === "portal"
|
|
? "Organization Portal"
|
|
: "Entry Hub";
|
|
const actionLabel = view === "portal" ? "Sign Out" : "Close";
|
|
const footerSections = [
|
|
{
|
|
title: "Registry Resources",
|
|
items: [
|
|
"Registration Guidelines",
|
|
"Tax & Fee Schedule",
|
|
"Legal Compliance",
|
|
"Trademark Database",
|
|
],
|
|
},
|
|
{
|
|
title: "Bureau Support",
|
|
items: [
|
|
"Office: Sector 7 Admin Block",
|
|
"Hours: 0800 - 1600 (GST)",
|
|
"Helpdesk: 555-01-REGISTRY",
|
|
"support@org-bureau.gov",
|
|
],
|
|
},
|
|
];
|
|
|
|
function closeRegistry() {
|
|
if (
|
|
typeof A3API !== "undefined" &&
|
|
typeof A3API.SendAlert === "function"
|
|
) {
|
|
A3API.SendAlert(
|
|
JSON.stringify({
|
|
event: "org::close",
|
|
data: {},
|
|
}),
|
|
);
|
|
return;
|
|
}
|
|
|
|
store.setView("home");
|
|
}
|
|
|
|
if (view === "portal" && PortalApp) {
|
|
return h(
|
|
"div",
|
|
null,
|
|
Navbar({
|
|
title: "Global Organization Network",
|
|
viewLabel,
|
|
actionLabel,
|
|
onAction: closeRegistry,
|
|
}),
|
|
PortalApp(),
|
|
);
|
|
}
|
|
|
|
let mainContent;
|
|
if (view === "home") {
|
|
mainContent = HomeView();
|
|
} else if (view === "create") {
|
|
mainContent = RegistrationView();
|
|
}
|
|
|
|
return h(
|
|
"main",
|
|
null,
|
|
Navbar({
|
|
title: "Global Organization Network",
|
|
viewLabel,
|
|
actionLabel,
|
|
onAction: closeRegistry,
|
|
}),
|
|
h(
|
|
"div",
|
|
{ className: "container" },
|
|
Header({
|
|
title: "Global Organization Network",
|
|
onTitleClick: () => store.setView("home"),
|
|
}),
|
|
mainContent,
|
|
),
|
|
Footer({ sections: footerSections }),
|
|
);
|
|
};
|
|
})();
|