UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

85 lines (82 loc) • 2.83 kB
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