1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-08-04 21:35:23 +02:00

refactor(ui): move react components to react codebase [EE-3354] (#8258)

* refactor(ui): move react components to react codebase [EE-3354]

* refactor(app): move bocx selector options

* refactor(react): spearate portainer components

* fix(app): fix imports
This commit is contained in:
Chaim Lev-Ari 2023-02-28 17:32:29 +02:00 committed by GitHub
parent f9a09301a8
commit b98c71f1ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
66 changed files with 312 additions and 294 deletions

View file

@ -3,7 +3,7 @@ import { boolean, number, object, SchemaOf, string } from 'yup';
import { GitAuthModel } from '@/react/portainer/gitops/types';
import { useDebounce } from '@/react/hooks/useDebounce';
import { GitCredential } from '@/portainer/views/account/git-credential/types';
import { GitCredential } from '@/react/portainer/account/git-credentials/types';
import { SwitchField } from '@@/form-components/SwitchField';
import { Input } from '@@/form-components/Input';

View file

@ -1,5 +1,5 @@
import { useGitCredentials } from '@/portainer/views/account/git-credential/gitCredential.service';
import { GitCredential } from '@/portainer/views/account/git-credential/types';
import { GitCredential } from '@/react/portainer/account/git-credentials/types';
import { useGitCredentials } from '@/react/portainer/account/git-credentials/git-credentials.service';
import { useUser } from '@/react/hooks/useUser';
import { FormControl } from '@@/form-components/FormControl';

View file

@ -3,7 +3,7 @@ import { Form, Formik } from 'formik';
import { rest } from 'msw';
import { withUserProvider } from '@/react/test-utils/withUserProvider';
import { GitCredential } from '@/portainer/views/account/git-credential/types';
import { GitCredential } from '@/react/portainer/account/git-credentials/types';
import { GitForm, buildGitValidationSchema } from './GitForm';
import { GitFormModel } from './types';

View file

@ -5,12 +5,13 @@ import { ComposePathField } from '@/react/portainer/gitops/ComposePathField';
import { RefField } from '@/react/portainer/gitops/RefField';
import { GitFormUrlField } from '@/react/portainer/gitops/GitFormUrlField';
import { GitFormModel } from '@/react/portainer/gitops/types';
import { GitCredential } from '@/portainer/views/account/git-credential/types';
import { TimeWindowDisplay } from '@/react/portainer/gitops/TimeWindowDisplay';
import { FormSection } from '@@/form-components/FormSection';
import { TimeWindowDisplay } from '@@/TimeWindowDisplay';
import { validateForm } from '@@/form-components/validate-form';
import { GitCredential } from '../account/git-credentials/types';
import { AdditionalFileField } from './AdditionalFilesField';
import { gitAuthValidation, AuthFieldset } from './AuthFieldset';
import { AutoUpdateFieldset } from './AutoUpdateFieldset';

View file

@ -0,0 +1,87 @@
import moment from 'moment';
import 'moment-timezone';
import { useCurrentEnvironment } from '@/react/hooks/useCurrentEnvironment';
import { TextTip } from '@@/Tip/TextTip';
import { withEdition } from '../feature-flags/withEdition';
const TimeWindowDisplayWrapper = withEdition(TimeWindowDisplay, 'BE');
export { TimeWindowDisplayWrapper as TimeWindowDisplay };
function TimeWindowDisplay() {
const currentEnvQuery = useCurrentEnvironment(false);
if (!currentEnvQuery.data) {
return null;
}
const { ChangeWindow } = currentEnvQuery.data;
if (!ChangeWindow.Enabled) {
return null;
}
const timezone = moment.tz.guess();
const isDST = moment().isDST();
const { startTime: startTimeLocal, endTime: endTimeLocal } = utcToTime(
{ startTime: ChangeWindow.StartTime, endTime: ChangeWindow.EndTime },
timezone
);
const { startTime: startTimeUtc, endTime: endTimeUtc } = parseInterval(
ChangeWindow.StartTime,
ChangeWindow.EndTime
);
return (
<TextTip color="orange">
A change window is enabled, automatic updates will not occur outside of{' '}
<span className="font-bold">
{shortTime(startTimeUtc)} - {shortTime(endTimeUtc)} UTC (
{shortTime(startTimeLocal)} -{shortTime(endTimeLocal)}{' '}
{isDST ? 'DST' : ''} {timezone})
</span>
.
</TextTip>
);
}
function utcToTime(
utcTime: { startTime: string; endTime: string },
timezone: string
) {
const startTime = moment
.tz(utcTime.startTime, 'HH:mm', 'GMT')
.tz(timezone)
.format('HH:mm');
const endTime = moment
.tz(utcTime.endTime, 'HH:mm', 'GMT')
.tz(timezone)
.format('HH:mm');
return parseInterval(startTime, endTime);
}
function parseTime(originalTime: string) {
const [startHour, startMin] = originalTime.split(':');
const time = new Date();
time.setHours(parseInt(startHour, 10));
time.setMinutes(parseInt(startMin, 10));
return time;
}
function parseInterval(startTime: string, endTime: string) {
return {
startTime: parseTime(startTime),
endTime: parseTime(endTime),
};
}
function shortTime(time: Date) {
return moment(time).format('h:mm a');
}