8000 framework.PageManager · SaffronCode/SaffronCodeJS@cf3d1aa · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Jul 10, 2024. It is now read-only.

Commit cf3d1aa

Browse files
committed
framework.PageManager
1 parent 7807a7e commit cf3d1aa

File tree

4 files changed

+55
-26
lines changed

4 files changed

+55
-26
lines changed

src/SaffronCode.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import Input from './ui/Input';
33
//import StringFunctions from './libs/StringFunctions';
44
import * as React from 'react';
55
import EventDispatcher from './framework/EventDispatcher';
6+
import PageManager from './framework/pageManager/PageManager';
67

78

89

@@ -19,12 +20,15 @@ var ui:uiModel = {
1920

2021

2122
interface frameworkModel{
22-
EventDispatcher:typeof EventDispatcher
23+
EventDispatcher:typeof EventDispatcher,
24+
PageManager:typeof PageManager
2325
}
2426

2527
var framework:frameworkModel = {
26-
EventDispatcher:EventDispatcher
28+
EventDispatcher:EventDispatcher,
29+
PageManager:PageManager
2730
}
28-
var disp=new framework.EventDispatcher();
31+
32+
2933

3034
export {ui,framework} ;

src/framework/pageManager/PageData.js

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/framework/pageManager/PageData.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
export default class PageData{
3+
url:string;
4+
pageName:string;
5+
component?:React.ComponentClass;
6+
pageData:any;
7+
8+
constructor(URL:string='',PageName:string='',Component?:React.ComponentClass)
9+
{
10+
this.url = URL ;
11+
this.pageName = PageName ;
12+
this.component = Component ;
13+
this.pageData = {} ;
14+
}
15+
}

src/framework/pageManager/PageManager.js renamed to src/framework/pageManager/PageManager.ts

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,44 @@ import EventDispatcher from "../EventDispatcher";
55
//import JSFunctions from "../libs/JSFunctions" ;
66

77
const maximomAcceptableParamsOnURL = 10 ;
8+
var allPages:PageData[] = [] ;
9+
10+
interface PageManagerModel {
11+
dispatcher:EventDispatcher,
12+
PAGE_CHANGED:string,
13+
routerParamList:string,
14+
changePage:typeof changePage,
15+
decodePageParams:typeof decodePageParams,
16+
getCurrentPage:typeof getCurrentPage,
17+
registerPage:typeof registerPage,
18+
}
19+
20+
var PageManager:PageManagerModel = {
21+
dispatcher:new EventDispatcher(),
22+
PAGE_CHANGED : "PAGE_CHANGED",
23+
routerParamList:'',
24+
changePage:changePage,
25+
decodePageParams:decodePageParams,
26+
getCurrentPage:getCurrentPage,
27+
registerPage:registerPage,
28+
};
829

9-
var PageManager = {};
10-
PageManager.dispatcher = new EventDispatcher();
11-
PageManager.PAGE_CHANGED = "PAGE_CHANGED" ;
1230

13-
PageManager.routerParamList = '' ;
14-
for(var i = 0 ; i<maximomAcceptableParamsOnURL ; i++)
31+
for(var i:number = 0 ; i<maximomAcceptableParamsOnURL ; i++)
1532
{
1633
PageManager.routerParamList+='/:p'+i+'?';
1734
}
1835

1936
///Page list ↓
20-
PageManager.allPages = [] ;
21-
PageManager.menuPages = [] ;
2237

38+
function registerPage(page:PageData):void
39+
{
40+
allPages.push(page);
41+
}
2342

2443
var lastPage = new PageData();
2544

26-
PageManager.changePage = function(targetPage,pageData=[])
45+
function changePage(targetPage:PageData,pageData:any[]=[]):void
2746
{
2847
if(targetPage!==null)
2948
{
@@ -37,7 +56,7 @@ PageManager.changePage = function(targetPage,pageData=[])
3756
}
3857

3958
/**@description pass the constructor's props to the function and retrive parameters list */
40-
PageManager.decodePageParams = function(props={})
59+
function decodePageParams(props:any={}):any[]|null
4160
{
4261
if(
4362
props !== undefined &&
@@ -56,20 +75,21 @@ PageManager.decodePageParams = function(props={})
5675
}
5776
return params ;
5877
}
78+
return null ;
5979
}
6080

6181
/**@return {PageData} */
62-
PageManager.getCurrentPage = function()
82+
function getCurrentPage():PageData|null
6383
{
6484
/**@type {string} */
6585
let currentLocation = window.location.href.toLowerCase();
66-
for(var i = 0 ; i<PageManager.allPages.length ; i++)
86+
for(var i = 0 ; i<allPages.length ; i++)
6787
{
6888
/**@type {string} */
69-
let testLoc = PageManager.allPages[i].url ;
89+
let testLoc = allPages[i].url ;
7090
if(currentLocation.indexOf(testLoc)!==-1)
7191
{
72-
return PageManager.allPages[i] ;
92+
return allPages[i] ;
7393
}
7494
}
7595
return null;

0 commit comments

Comments
 (0)
0