(slurp "status.js")

Former-commit-id: 82c6688648
This commit is contained in:
Roman Volosovskyi 2016-06-24 15:38:51 +03:00
parent 157393bd7a
commit e84af2595f
2 changed files with 7 additions and 106 deletions

View File

@ -1,112 +1,8 @@
(ns status-im.components.jail
(:require-macros [status-im.utils.slurp :refer [slurp]])
(:require [status-im.components.react :as r]))
(def status-js
"var _status_catalog = {
commands: {},
responses: {}
};
function Command() {
}
function Response() {
}
Command.prototype.addToCatalog = function () {
_status_catalog.commands[this.name] = this;
};
Command.prototype.param = function (parameter) {
this.params.push(parameter);
return this;
};
Command.prototype.create = function (com) {
this.name = com.name;
this.description = com.description;
this.handler = com.handler;
this.color = com.color;
this.icon = com.icon;
this.params = com.params || [];
this.preview = com.preview;
this.addToCatalog();
return this;
};
Response.prototype = Object.create(Command.prototype);
Response.prototype.addToCatalog = function () {
_status_catalog.responses[this.name] = this;
};
Response.prototype.onReceiveResponse = function (handler) {
this.onReceive = handler;
};
function call(pathStr, paramsStr) {
var params = JSON.parse(paramsStr),
path = JSON.parse(pathStr),
fn, res;
fn = path.reduce(function (catalog, name) {
if (catalog && catalog[name]) {
return catalog[name];
}
},
_status_catalog
);
res = fn(params);
return JSON.stringify(res);
}
function text(options, s) {
return ['text', options, s];
}
function view(options, elements) {
return ['view', options].concat(elements);
}
function image(options) {
return ['image', options];
}
function touchable(options, element) {
return ['touchable', options, element];
}
function scrollView(options, elements) {
return ['scroll-view', options].concat(elements);
}
var status = {
command: function (n, d, h) {
var command = new Command();
return command.create(n, d, h);
},
response: function (n, d, h) {
var response = new Response();
return response.create(n, d, h);
},
types: {
STRING: 'string',
PHONE_NUMBER: 'phone-number',
PASSWORD: 'password'
},
events: {
SET_VALUE: 'set-value'
},
components: {
view: view,
text: text,
image: image,
touchable: touchable,
scrollView: scrollView
}
};")
(def status-js (slurp "resources/status.js"))
(def jail
(when (exists? (.-NativeModules r/react))

View File

@ -0,0 +1,5 @@
(ns status-im.utils.slurp
(:refer-clojure :exclude [slurp]))
(defmacro slurp [file]
(clojure.core/slurp file))