Update dependencies, refactor authentication, and enhance UI components

- Upgraded @reduxjs/toolkit to version 2.9.0 and added new dependencies including @techniker-me/pcast-api and moment.
- Refactored authentication logic and added middleware for improved request handling.
- Introduced new UI components such as buttons, loaders, and forms, along with a theme system following SOLID principles.
- Updated routing to include protected routes and improved the login form with better error handling.
- Removed unused CSS and organized the project structure for better maintainability.
This commit is contained in:
2025-09-04 01:10:03 -04:00
parent 04488c43c5
commit 1469c7f52f
85 changed files with 3610 additions and 125 deletions

View File

@@ -0,0 +1,65 @@
/**
* Copyright 2024 Phenix Real Time Solutions, Inc. Confidential and Proprietary. All Rights Reserved.
*/
import {faEllipsisV} from '@fortawesome/free-solid-svg-icons';
import {CellType, ColumnsType, DataRowType} from 'components/table';
import {ChannelIconMenu} from 'components/channel-icon-menu';
import {IconMenuPosition} from 'components/icon-menu/icon-menu';
import PublishingStateIndicator from 'components/indicator-component/publishing-state-indicator';
import {theme} from 'theme';
const ChannelPublishingStateIndicator = (row?: DataRowType) => <PublishingStateIndicator row={row} idKey="channelId" publishingStateKey="channelsPublishing" />;
export const columns: ColumnsType = {
indicator: {
title: '',
hasBorder: false,
width: 40,
type: CellType.Component,
renderCell: ChannelPublishingStateIndicator
},
name: {
title: 'Channel Name',
type: CellType.Link,
textCell: {propName: 'name'},
thStyle: {
textAlign: 'left',
paddingLeft: 16
}
},
alias: {
title: 'Alias',
textCell: {propName: 'alias'}
},
channelId: {
title: 'Channel Id',
hideColumnAt: theme.screenSizes.desktop,
textCell: {propName: 'channelId'}
},
streamKey: {
title: 'Stream Key',
hideColumnAt: theme.screenSizes.tablet,
textCell: {propName: 'streamKey'}
},
created: {
title: 'Created',
hideColumnAt: theme.screenSizes.large,
type: CellType.Date,
textCell: {propName: 'created'}
},
dropdown: {
title: '',
hasBorder: false,
width: 50,
type: CellType.DropDown,
dropdownCell: {
Component: ChannelIconMenu,
keys: ['channelId', 'name', 'alias'],
componentProps: {
icon: faEllipsisV,
showTail: false,
position: IconMenuPosition.Left
}
}
}
};