one
Version:
One is a React framework for web, iOS, and Android apps.
85 lines (82 loc) • 2.83 kB
JavaScript
import { NativeEventEmitter, NativeModules, Platform } from "react-native";
import { WidgetUI, encodeActivityView, encodeWidgetView } from "./view.native.js";
import { LiveActivities as LiveActivities$1 } from "./unavailable.native.js";
function bridge() {
var native = NativeModules.OneWidgetsBridge;
if (!native) throw new Error("iOS widgets require native.app.ios.widgets and a new iOS build");
return native;
}
var nativeWidgets = Object.freeze({
write(data) {
return bridge().writeWidget(data.title, data.value, data.subtitle);
},
writeView(view) {
return bridge().writeView(encodeWidgetView(view));
}
});
var nativeLiveActivities = Object.freeze({
start(title, state) {
var push = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
return bridge().start(title, state.status, state.value, push);
},
startView(title, view) {
var push = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
return bridge().startView(title, encodeActivityView(view), push);
},
update(id, state) {
return bridge().update(id, state.status, state.value);
},
updateView(id, view) {
return bridge().updateView(id, encodeActivityView(view));
},
end(id) {
return bridge().end(id);
},
pushToken(id) {
return bridge().pushToken(id);
},
onPushToken(listener) {
var subscription = new NativeEventEmitter(bridge()).addListener("oneLiveActivityPushToken", listener);
return function() {
return subscription.remove();
};
}
});
function androidLimit(operation) {
return new Error(`${operation} requires an iOS native build`);
}
var androidWidgets = Object.freeze({
write(_data) {
return Promise.reject(androidLimit("Widgets.write"));
},
writeView(_view) {
return Promise.reject(androidLimit("Widgets.writeView"));
}
});
var androidLiveActivities = Object.freeze({
...LiveActivities$1,
start(_title, _state) {
var _push = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
return Promise.reject(androidLimit("LiveActivities.start"));
},
startView(_title, _view) {
var _push = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
return Promise.reject(androidLimit("LiveActivities.startView"));
},
update(_id, _state) {
return Promise.reject(androidLimit("LiveActivities.update"));
},
updateView(_id, _view) {
return Promise.reject(androidLimit("LiveActivities.updateView"));
},
end(_id) {
return Promise.reject(androidLimit("LiveActivities.end"));
},
onPushToken(_listener) {
throw androidLimit("LiveActivities.onPushToken");
}
});
var Widgets = Platform.OS === "android" ? androidWidgets : nativeWidgets;
var LiveActivities = Platform.OS === "android" ? androidLiveActivities : nativeLiveActivities;
export { LiveActivities, WidgetUI, Widgets };
//# sourceMappingURL=index.native.js.map