mirror of
https://github.com/astuto/astuto.git
synced 2025-12-16 11:47:56 +01:00
Add polyfill for padStart function
This commit is contained in:
@@ -2,6 +2,8 @@ import * as React from 'react';
|
|||||||
|
|
||||||
import Button from '../../shared/Button';
|
import Button from '../../shared/Button';
|
||||||
|
|
||||||
|
import padStart from '../../../helpers/padStart';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
mode: 'create' | 'update';
|
mode: 'create' | 'update';
|
||||||
|
|
||||||
@@ -47,7 +49,7 @@ class PostStatusForm extends React.Component<Props, State> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getRandomColor() {
|
getRandomColor() {
|
||||||
return '#' + (Math.random() * 0xFFFFFF << 0).toString(16).padStart(6, '0');
|
return '#' + padStart((Math.random() * 0xFFFFFF << 0).toString(16), 6, '0');
|
||||||
}
|
}
|
||||||
|
|
||||||
isFormValid() {
|
isFormValid() {
|
||||||
|
|||||||
20
app/javascript/helpers/padStart.js
Normal file
20
app/javascript/helpers/padStart.js
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
// padStart has been introduced in ES2017, but right now we're running on ES2016
|
||||||
|
// This is a MDN polyfill used as an alternative
|
||||||
|
// TODO: switch to ES2017 and remove this script
|
||||||
|
|
||||||
|
function padStart(str, targetLength, padString) {
|
||||||
|
targetLength = targetLength>>0; //truncate if number or convert non-number to 0;
|
||||||
|
padString = String((typeof padString !== 'undefined' ? padString : ' '));
|
||||||
|
if (str.length > targetLength) {
|
||||||
|
return String(str);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
targetLength = targetLength-str.length;
|
||||||
|
if (targetLength > padString.length) {
|
||||||
|
padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed
|
||||||
|
}
|
||||||
|
return padString.slice(0,targetLength) + String(str);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default padStart;
|
||||||
Reference in New Issue
Block a user