Fabric: Introducing `RawEvent`
Summary: @public RawEvent represents ready-to-dispatch event data, an event that can be processed uniformly. Reviewed By: mdvacca Differential Revision: D8886235 fbshipit-source-id: 1c905517814330c5ecbf39f0ebc95ff2b576d1f2
This commit is contained in:
Родитель
26d0b05c80
Коммит
504c7694c4
|
@ -0,0 +1,29 @@
|
|||
/**
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#include "RawEvent.h"
|
||||
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
RawEvent::RawEvent(
|
||||
const std::string &type,
|
||||
const folly::dynamic &payload,
|
||||
const EventTarget &eventTarget,
|
||||
const std::function<bool()> &isDispatchable
|
||||
):
|
||||
type(type),
|
||||
payload(payload),
|
||||
eventTarget(eventTarget),
|
||||
isDispachable_(isDispatchable) {}
|
||||
|
||||
bool RawEvent::isDispachable() const {
|
||||
return isDispachable_();
|
||||
}
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
|
@ -0,0 +1,48 @@
|
|||
/**
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include <folly/dynamic.h>
|
||||
#include <fabric/events/primitives.h>
|
||||
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
/*
|
||||
* Represents ready-to-dispatch event data.
|
||||
*/
|
||||
class RawEvent {
|
||||
|
||||
public:
|
||||
using RawEventDispatchable = std::function<bool()>;
|
||||
|
||||
RawEvent(
|
||||
const std::string &type,
|
||||
const folly::dynamic &payload,
|
||||
const EventTarget &eventTarget,
|
||||
const RawEventDispatchable &isDispachable
|
||||
);
|
||||
|
||||
const std::string type;
|
||||
const folly::dynamic payload;
|
||||
const EventTarget eventTarget;
|
||||
|
||||
/*
|
||||
* Returns `true` if event can be dispatched to `eventTarget`.
|
||||
* Events that associated with unmounted or deallocated `ShadowNode`s
|
||||
* must not be dispatched.
|
||||
*/
|
||||
bool isDispachable() const;
|
||||
|
||||
private:
|
||||
const RawEventDispatchable isDispachable_;
|
||||
};
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
Загрузка…
Ссылка в новой задаче