You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1.0 KiB
JavaScript

"use strict";
const React = require("react");
const useTheme = require("../../util/themeable");
const defaultStyle = require("./style.css");
const generateGridItemStyle = require("../../util/generate-grid-item-style");
const Button = require("../button");
const ProgressBar = require("../progress-bar");
module.exports = function ProgressButton({ x, y, horizontal, vertical, type, icon, progress, progressColor, children }) {
// FIXME: progressColor in theme, same for custom button style / proportions -- maybe make `type` a thing that takes an array, for multiple type classes? to deal with composite controls
let { withTheme } = useTheme({ control: "progressButton", defaultStyle });
let direction = (vertical === true)
? "vertical"
: "horizontal";
return (
<div className={withTheme("uilibComponent", "progressButton", `direction-${direction}`)} style={generateGridItemStyle({ x, y })}>
<Button type={type} icon={icon}>
{children}
</Button>
<ProgressBar progress={progress} progressColor={progressColor} />
</div>
);
};