import React, { ForwardedRef, useContext } from 'react';
import { OriginIconProps } from '../type';
import { Context } from '../context';

function IconForward30sComponent(props: OriginIconProps, ref: ForwardedRef<SVGSVGElement>) {
    const { prefix: prefixFromContext } = useContext(Context);
    const { className = '', prefix: prefixFromProps, width = '1em', height = '1em', useCurrentColor = true, spin, ...rest } = props;

    const prefix = prefixFromProps || prefixFromContext || 'font';
    const loadingKls = spin ? ` ${prefix}-icon-loading` : '';
    return <svg className={`${prefix}-icon ${prefix}-icon-Forward30s${loadingKls} ${className}`} width={width} height={height} viewBox="0 0 24 24" fill={useCurrentColor ? 'currentColor' : '#000'} xmlns="http://www.w3.org/2000/svg" {...rest} ref={ref}><path d="M12 2C10.0222 2 8.08883 2.58673 6.44434 3.68555C4.79992 4.78434 3.51761 6.34567 2.76074 8.17285C2.00387 10.0001 1.80653 12.0114 2.19238 13.9512C2.57827 15.8909 3.53026 17.6728 4.92871 19.0713C6.32716 20.4697 8.10914 21.4217 10.0488 21.8076C11.9886 22.1935 13.9999 21.9961 15.8271 21.2393C17.6543 20.4824 19.2157 19.2001 20.3145 17.5557C21.4133 15.9112 22 13.9778 22 12C22 11.4477 21.5523 11 21 11C20.4477 11 20 11.4477 20 12C20 13.5823 19.5304 15.1287 18.6514 16.4443C17.7724 17.7599 16.5232 18.7851 15.0615 19.3906C13.5998 19.9961 11.9912 20.1553 10.4395 19.8467C8.88761 19.538 7.46159 18.776 6.34277 17.6572C5.22395 16.5384 4.462 15.1124 4.15332 13.5605C3.8447 12.0088 4.00391 10.4002 4.60938 8.93848C5.21488 7.47676 6.24014 6.22764 7.55566 5.34863C8.87072 4.46994 10.4165 4.00039 11.998 4C14.2554 4.00896 16.4219 4.88999 18.0449 6.45898L18.5859 7H18C17.4477 7 17 7.44772 17 8C17 8.55228 17.4477 9 18 9H21C21.0567 9 21.1119 8.99343 21.166 8.98438C21.1764 8.98263 21.1869 8.98157 21.1973 8.97949C21.2088 8.97719 21.2201 8.97437 21.2314 8.97168C21.252 8.9668 21.2727 8.96225 21.293 8.95605C21.3416 8.94116 21.3884 8.92219 21.4336 8.90039C21.4554 8.88987 21.4769 8.87841 21.498 8.86621C21.6588 8.77356 21.7915 8.63811 21.8799 8.47461C21.8873 8.46086 21.8937 8.44663 21.9004 8.43262C21.9222 8.38731 21.9422 8.34077 21.957 8.29199C21.9722 8.24208 21.9821 8.19096 21.9893 8.13965C21.9956 8.09397 22 8.04744 22 8V5C22 4.44772 21.5523 4 21 4C20.4477 4 20 4.44772 20 5V5.58594L19.4473 5.0332L19.0537 4.66992C17.1076 2.96203 14.6048 2.00982 12.0039 2H12Z"/><path fillRule="evenodd" clipRule="evenodd" d="M14.9967 8.51953C15.8367 8.51964 16.5156 8.84794 17.0152 9.51172L17.1129 9.64844C17.5819 10.3521 17.8062 11.2861 17.8062 12.4297C17.8062 13.5735 17.582 14.5072 17.1129 15.2109L17.1119 15.2129C16.6055 15.9562 15.8939 16.3397 14.9967 16.3398C14.1468 16.3398 13.4674 16.003 12.9761 15.3467L12.8804 15.2109C12.4112 14.5071 12.1871 13.5736 12.1871 12.4297C12.1871 11.286 12.4114 10.3531 12.8804 9.64941C13.3785 8.89221 14.0918 8.51953 14.9967 8.51953ZM14.9967 9.91016C14.7503 9.91016 14.5531 9.97664 14.3931 10.1025C14.2308 10.2304 14.0912 10.4318 13.9849 10.7275L13.984 10.7295C13.8359 11.1274 13.7564 11.6905 13.7564 12.4297C13.7564 13.0671 13.8174 13.5787 13.9322 13.9707L13.9849 14.1318C14.0912 14.4226 14.23 14.6254 14.3931 14.7549C14.5539 14.8824 14.7517 14.9502 14.9967 14.9502C15.2356 14.9501 15.4311 14.8829 15.5924 14.7549C15.7563 14.6247 15.8982 14.4207 16.0093 14.1289C16.1575 13.72 16.2369 13.1567 16.2369 12.4297C16.2369 11.691 16.1572 11.1284 16.0093 10.7305C15.8982 10.4341 15.7563 10.2311 15.5933 10.1025C15.4328 9.97608 15.237 9.91023 14.9967 9.91016Z"/><path d="M9.07087 8.51953C9.82073 8.51965 10.4596 8.69712 10.9449 9.08301L10.9468 9.08496C11.4279 9.47662 11.6705 10.0165 11.6705 10.6904L11.6656 10.8467C11.6415 11.2066 11.5319 11.5227 11.3306 11.7861C11.1913 11.9684 11.012 12.1188 10.7984 12.2402C11.0371 12.3599 11.2403 12.5111 11.399 12.6973C11.677 13.0101 11.8101 13.4104 11.8101 13.8701L11.7984 14.1318C11.7503 14.6543 11.5548 15.1067 11.2115 15.4814L11.0543 15.6387C10.5311 16.1074 9.85 16.3397 9.03083 16.3398C8.35334 16.3398 7.7707 16.1871 7.30427 15.8691L7.11189 15.7227C6.62994 15.3177 6.34242 14.7499 6.23591 14.0518L6.20076 13.7451C6.1966 13.6897 6.21571 13.6345 6.25349 13.5938C6.29133 13.5531 6.3454 13.5303 6.40095 13.5303H7.5904C7.68399 13.5305 7.7634 13.5948 7.78474 13.6826L7.7906 13.7217C7.80676 14.0921 7.90548 14.3693 8.08259 14.5693L8.1656 14.6523C8.37253 14.8426 8.65176 14.9501 9.02009 14.9502C9.43025 14.9501 9.73701 14.8323 9.95173 14.626C10.1427 14.4338 10.2408 14.2051 10.2408 13.9199C10.2408 13.5993 10.1527 13.3796 10.0103 13.2344L9.94685 13.1768L9.94294 13.1738C9.75482 13.0171 9.45905 12.9297 9.02009 12.9297H8.52009C8.41001 12.9294 8.32113 12.8406 8.32087 12.7305V11.8496C8.32108 11.7395 8.40998 11.6506 8.52009 11.6504H9.02009C9.41268 11.6503 9.67943 11.5649 9.85017 11.4268C10.005 11.2936 10.1001 11.0863 10.1002 10.7803C10.1002 10.4717 10.014 10.2705 9.87556 10.1377C9.71555 10.0032 9.46111 9.91999 9.08064 9.91992C8.69157 9.91992 8.42673 10.0126 8.24568 10.1777L8.24275 10.1807C8.05328 10.3464 7.9262 10.6114 7.88923 11.0088C7.87955 11.1112 7.79379 11.19 7.69099 11.1904H6.5406C6.48476 11.1904 6.431 11.166 6.39314 11.125C6.35553 11.0839 6.33682 11.0291 6.34138 10.9736C6.4047 10.2139 6.68157 9.6008 7.20759 9.16016C7.70178 8.72105 8.33335 8.51953 9.07087 8.51953Z"/></svg>;
}

const IconForward30s = React.forwardRef(IconForward30sComponent);
export default IconForward30s;
