"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Loader;
var _react = _interopRequireWildcard(require("react"));
var _reactNative = require("react-native");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
/** @format */

function Loader({
  size = 32,
  color = '#3498db'
}) {
  const spinValue = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
  (0, _react.useEffect)(() => {
    const spinAnimation = _reactNative.Animated.loop(_reactNative.Animated.timing(spinValue, {
      toValue: 1,
      duration: 1000,
      easing: _reactNative.Easing.linear,
      useNativeDriver: true
    }));
    spinAnimation.start();
    return () => {
      spinAnimation.stop();
    };
  }, [spinValue]);
  const spin = spinValue.interpolate({
    inputRange: [0, 1],
    outputRange: ['0deg', '360deg']
  });
  const borderWidth = size ? size / 8 : 4;
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
    style: styles.container,
    children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
      style: [{
        width: size,
        height: size,
        borderRadius: size / 2,
        borderWidth: borderWidth,
        borderTopColor: color,
        borderRightColor: 'transparent',
        borderBottomColor: 'transparent',
        borderLeftColor: 'transparent',
        transform: [{
          rotate: spin
        }]
      }]
    })
  });
}
const styles = _reactNative.StyleSheet.create({
  container: {
    justifyContent: 'center',
    alignItems: 'center',
    padding: 8
  }
});
//# sourceMappingURL=Loader.js.map