|
@ -97,6 +97,8 @@ import route from 'riot-route'; |
|
|
import lens from './lenses.js'; |
|
|
import lens from './lenses.js'; |
|
|
import { throttle } from 'lodash-es'; |
|
|
import { throttle } from 'lodash-es'; |
|
|
|
|
|
|
|
|
|
|
|
const hashLength = 8; |
|
|
|
|
|
|
|
|
var self = this; |
|
|
var self = this; |
|
|
|
|
|
|
|
|
self.cache = {}; |
|
|
self.cache = {}; |
|
@ -105,7 +107,7 @@ self.showBorder = false; |
|
|
self.route = route; |
|
|
self.route = route; |
|
|
self.riot = riot; |
|
|
self.riot = riot; |
|
|
self.menuActive = false; |
|
|
self.menuActive = false; |
|
|
self.currentPage = ""; |
|
|
self.currentPage = self.opts.title; |
|
|
|
|
|
|
|
|
window.addEventListener("scroll", |
|
|
window.addEventListener("scroll", |
|
|
throttle((ev) => { |
|
|
throttle((ev) => { |
|
@ -143,12 +145,15 @@ RiotControl.on("postswitch", |
|
|
} |
|
|
} |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
self.route.base('#!') |
|
|
self.route.base('/blog/') |
|
|
|
|
|
|
|
|
self.state = { |
|
|
self.state = { |
|
|
"_id" : false, |
|
|
"_id" : self.opts.postid.slice(-hashLength), |
|
|
|
|
|
"author" : self.opts.author, |
|
|
|
|
|
"title" : self.opts.title, |
|
|
"projects" : Z.empty, |
|
|
"projects" : Z.empty, |
|
|
"loaded" : false |
|
|
"loaded" : false, |
|
|
|
|
|
"initial" : decodeURIComponent(self.opts.initial_post) |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
self.active = lens.actives({ |
|
|
self.active = lens.actives({ |
|
@ -176,9 +181,12 @@ menuOff(ev) { |
|
|
function activate(page) { |
|
|
function activate(page) { |
|
|
return function() { |
|
|
return function() { |
|
|
if (page !== "posts") { |
|
|
if (page !== "posts") { |
|
|
document.title = page.slice(0,1).toUpperCase()+" "+page.slice(1,page.length); |
|
|
document.title = page.slice(0,1).toUpperCase()+page.slice(1,page.length); |
|
|
self.currentPage = document.title; |
|
|
self.currentPage = document.title; |
|
|
} |
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
self.currentPage = self.state.title; |
|
|
|
|
|
} |
|
|
self.active = lens.setActive(self.active, page); |
|
|
self.active = lens.setActive(self.active, page); |
|
|
self.update(); |
|
|
self.update(); |
|
|
}; |
|
|
}; |
|
@ -189,6 +197,8 @@ var about = activate("about"); |
|
|
var links = activate("links"); |
|
|
var links = activate("links"); |
|
|
|
|
|
|
|
|
function posts(_id) { |
|
|
function posts(_id) { |
|
|
|
|
|
console.log("XXX"); |
|
|
|
|
|
console.log(_id); |
|
|
if (self.state._id != _id) { |
|
|
if (self.state._id != _id) { |
|
|
self.state._id = _id; |
|
|
self.state._id = _id; |
|
|
} |
|
|
} |
|
@ -203,12 +213,19 @@ to(name) { |
|
|
e.preventDefault(); |
|
|
e.preventDefault(); |
|
|
this.menuOff(e); |
|
|
this.menuOff(e); |
|
|
} |
|
|
} |
|
|
|
|
|
console.log("routing to " + name); |
|
|
|
|
|
if (name == "posts") { |
|
|
|
|
|
this.route(`${name}/${self.state._id}`); |
|
|
|
|
|
} |
|
|
|
|
|
else { |
|
|
this.route(name); |
|
|
this.route(name); |
|
|
|
|
|
} |
|
|
return; |
|
|
return; |
|
|
}).bind(this); |
|
|
}).bind(this); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
self.route("/", self.to("posts")); |
|
|
self.route("/", () => { self.route(`/posts/${self.state._id}`); }); |
|
|
|
|
|
self.route("/posts", () => { self.route(`/posts/${self.state._id}`); }); |
|
|
self.route("posts/*", posts); |
|
|
self.route("posts/*", posts); |
|
|
self.route("posts", (() => {posts(self.state._id)})); |
|
|
self.route("posts", (() => {posts(self.state._id)})); |
|
|
self.route("projects", projects); |
|
|
self.route("projects", projects); |
|
@ -245,5 +262,9 @@ function getcategories() { |
|
|
self.on("mount", loaduser); |
|
|
self.on("mount", loaduser); |
|
|
self.on("mount", getcategories); |
|
|
self.on("mount", getcategories); |
|
|
|
|
|
|
|
|
|
|
|
self.on("mount", () => { |
|
|
|
|
|
console.log(decodeURIComponent(self.opts.initial_post)); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
</script> |
|
|
</script> |
|
|
</app> |
|
|
</app> |
|
|