Merge branch 'staging'
This commit is contained in:
commit
935af033a6
34
.gitea/workflows/deploy.yml
Normal file
34
.gitea/workflows/deploy.yml
Normal file
@ -0,0 +1,34 @@
|
||||
name: Deploy
|
||||
run-name: ${{ gitea.actor }} build image and push to container registry
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "main"
|
||||
- "staging"
|
||||
|
||||
jobs:
|
||||
CreateImage:
|
||||
runs-on: [skeris]
|
||||
uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/build-image.yml@v1.1.6-p
|
||||
with:
|
||||
runner: skeris
|
||||
secrets:
|
||||
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
||||
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
||||
DeployService:
|
||||
runs-on: [frontstaging]
|
||||
container:
|
||||
image: gitea.pena:3000/penadevops/container-images/node-compose:main
|
||||
env:
|
||||
GITHUB_RUN_NUMBER: "${{ inputs.actionid }}"
|
||||
volumes:
|
||||
- /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: http://gitea.pena:3000/PenaDevops/actions.git/checkout@v1
|
||||
- run: printenv
|
||||
- run: GITHUB_RUN_NUMBER=${{ gitea.run_id }} compose -f deployments/${{ gitea.ref_name }}/docker-compose.yaml up -d
|
||||
# uses: http://gitea.pena/PenaDevops/actions.git/.gitea/workflows/deploy.yml@v1.1.6-p
|
||||
# with:
|
||||
# runner: frontstaging
|
1
.yarnrc
Normal file
1
.yarnrc
Normal file
@ -0,0 +1 @@
|
||||
"@frontend:registry" "http://gitea.pena/api/packages/skeris/npm/"
|
16
Dockerfile
Normal file
16
Dockerfile
Normal file
@ -0,0 +1,16 @@
|
||||
FROM gitea.pena/penadevops/container-images/node-compose:main as build
|
||||
|
||||
RUN apk update && rm -rf /var/cache/apk/*
|
||||
WORKDIR /usr/app
|
||||
COPY . .
|
||||
|
||||
RUN npm install --force && yarn cache clean
|
||||
RUN npm run build
|
||||
|
||||
|
||||
FROM gitea.pena/penadevops/container-images/nginx:main as result
|
||||
WORKDIR /usr/share/nginx/html
|
||||
COPY --from=build /usr/app/build/ /usr/share/nginx/html
|
||||
COPY admin.conf /etc/nginx/conf.d/default.conf
|
||||
COPY cert.pem /etc/nginx/cert.pem
|
||||
COPY key.pem /etc/nginx/key.pem
|
12
Taskfile.yml
Normal file
12
Taskfile.yml
Normal file
@ -0,0 +1,12 @@
|
||||
version: "3"
|
||||
|
||||
tasks:
|
||||
build-image:
|
||||
cmds:
|
||||
- podman build -t gitea.pena/penaside/adminfront:$(git rev-parse --abbrev-ref HEAD).$(git rev-parse HEAD) .
|
||||
push:
|
||||
cmds:
|
||||
- task: build-image
|
||||
- cmd: podman login gitea.pena
|
||||
- cmd: podman push gitea.pena/penaside/adminfront:$(git rev-parse --abbrev-ref HEAD).$(git rev-parse HEAD)
|
||||
|
@ -1,6 +1,10 @@
|
||||
const CracoAlias = require("craco-alias");
|
||||
|
||||
module.exports = {
|
||||
|
||||
eslint: {
|
||||
enable: false
|
||||
},
|
||||
plugins: [
|
||||
{
|
||||
plugin: CracoAlias,
|
||||
|
@ -1,17 +1,9 @@
|
||||
version: "3.3"
|
||||
services:
|
||||
admin_front:
|
||||
container_name: admin_front
|
||||
restart: unless-stopped
|
||||
image: $CI_REGISTRY_IMAGE/staging:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
||||
networks:
|
||||
- marketplace_penahub_frontend
|
||||
- default
|
||||
hostname: admin
|
||||
image: gitea.pena/penaside/adminfront/staging:$GITHUB_RUN_NUMBER
|
||||
ports:
|
||||
- 10.8.0.7:80:80
|
||||
- 10.8.0.7:443:443
|
||||
- 10.7.0.18:80:80
|
||||
- 10.7.0.18:443:443
|
||||
tty: true
|
||||
networks:
|
||||
marketplace_penahub_frontend:
|
||||
external: true
|
||||
|
26332
package-lock.json
generated
Normal file
26332
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,7 @@
|
||||
"@date-io/dayjs": "^2.15.0",
|
||||
"@emotion/react": "^11.10.4",
|
||||
"@emotion/styled": "^11.10.4",
|
||||
"@frontend/kitui": "^1.0.97",
|
||||
"@frontend/kitui": "^1.0.108",
|
||||
"@material-ui/pickers": "^3.3.10",
|
||||
"@mui/icons-material": "^5.10.3",
|
||||
"@mui/material": "^5.10.5",
|
||||
@ -50,8 +50,8 @@
|
||||
"zustand": "^4.3.8"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "craco start",
|
||||
"build": "NODE_OPTIONS=\"--max-old-space-size=1024\" craco build",
|
||||
"start": "HOST=0.0.0.0 craco start",
|
||||
"build": "craco build",
|
||||
"test": "craco test --env=node --transformIgnorePatterns \"node_modules/(?!@frontend)/\"",
|
||||
"test:cart": "craco test src/utils/calcCart --transformIgnorePatterns \"node_modules/(?!@frontend)/\"",
|
||||
"test:cypress": "start-server-and-test start http://localhost:3000 cypress",
|
||||
@ -73,6 +73,7 @@
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/plugin-transform-private-property-in-object": "^7.23.4",
|
||||
"@eslint/js": "^9.3.0",
|
||||
"craco-alias": "^3.0.1",
|
||||
"eslint": "^9.3.0",
|
||||
|
@ -6,10 +6,7 @@ import { parseAxiosError } from "@root/utils/parse-error";
|
||||
import { Privilege } from "@frontend/kitui";
|
||||
import type { TMockData } from "./roles";
|
||||
|
||||
type SeverPrivilegesResponse = {
|
||||
templategen: CustomPrivilege[];
|
||||
squiz: CustomPrivilege[];
|
||||
};
|
||||
type SeverPrivilegesResponse = CustomPrivilege[];
|
||||
|
||||
const API_URL = `${process.env.REACT_APP_DOMAIN}/strator`;
|
||||
|
||||
@ -50,7 +47,7 @@ export const requestServicePrivileges = async (): Promise<[SeverPrivilegesRespon
|
||||
try {
|
||||
const privilegesResponse = await makeRequest<never, SeverPrivilegesResponse>({
|
||||
method: "GET",
|
||||
url: `${API_URL}/privilege/service`,
|
||||
url: `${API_URL}/privilege`,
|
||||
});
|
||||
|
||||
return [privilegesResponse];
|
||||
|
@ -81,7 +81,7 @@ export const requestTariffs = async (page: number): Promise<[GetTariffsResponse
|
||||
try {
|
||||
const tariffsResponse = await makeRequest<never, GetTariffsResponse>({
|
||||
method: "GET",
|
||||
url: `${API_URL}/tariff/?page=${page}&limit=${100}`,
|
||||
url: `${API_URL}/tariff/getlist/?page=${page}&limit=${100}`,
|
||||
});
|
||||
|
||||
return [tariffsResponse];
|
||||
|
@ -26,6 +26,7 @@ export interface Ticket {
|
||||
title: string;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
system?: boolean;
|
||||
rate: number;
|
||||
}
|
||||
|
||||
|
@ -33,10 +33,15 @@ export default function Support() {
|
||||
onFetchStateChange: setTicketsFetchState,
|
||||
});
|
||||
|
||||
useSSESubscription<Ticket>({
|
||||
useSSESubscription<Ticket | [{event: "ping"}]>({
|
||||
enabled: Boolean(token),
|
||||
url: process.env.REACT_APP_DOMAIN + `/heruvym/v1.0.0/subscribe?Authorization=${token}`,
|
||||
onNewData: updateTickets,
|
||||
onNewData: (e) => {
|
||||
|
||||
if ("event" in e[0] && e[0].event === "ping") return
|
||||
|
||||
updateTickets(e as Ticket[])
|
||||
},
|
||||
onDisconnect: () => {
|
||||
clearMessageState();
|
||||
clearTickets();
|
||||
|
@ -22,12 +22,13 @@ export default function TicketItem({ ticket, setActiveUserId }: Props) {
|
||||
const navigate = useNavigate();
|
||||
const ticketId = useParams().ticketId;
|
||||
|
||||
const isUnread = ticket.user === ticket.top_message.user_id;
|
||||
console.log(ticket)
|
||||
const isUnread = ticket.user === ticket?.top_message?.user_id;
|
||||
const isSelected = ticket.id === ticketId;
|
||||
|
||||
const unreadSx = {
|
||||
border: "1px solid",
|
||||
borderColor: theme.palette.golden.main,
|
||||
borderColor: ticket.system ? "red" : theme.palette.golden.main,
|
||||
backgroundColor: theme.palette.goldenMedium.main,
|
||||
};
|
||||
|
||||
|
@ -136,7 +136,7 @@ function sortTicketsByUpdateTime(ticket1: Ticket, ticket2: Ticket) {
|
||||
}
|
||||
|
||||
function sortTicketsByUnread(ticket1: Ticket, ticket2: Ticket) {
|
||||
const isUnread1 = ticket1.user === ticket1.top_message.user_id;
|
||||
const isUnread2 = ticket2.user === ticket2.top_message.user_id;
|
||||
const isUnread1 = ticket1.user === ticket1?.top_message.user_id;
|
||||
const isUnread2 = ticket2.user === ticket2?.top_message.user_id;
|
||||
return Number(isUnread2) - Number(isUnread1);
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ export default function CreateTariff() {
|
||||
const [, createdTariffError] = await createTariff({
|
||||
name: values.nameField,
|
||||
price: Number(values.customPriceField) * 100,
|
||||
order: values.orderField,
|
||||
order: Number(values.orderField),
|
||||
isCustom: false,
|
||||
description: values.descriptionField,
|
||||
privileges: [
|
||||
|
@ -20,12 +20,5 @@ export const requestPrivileges = async () => {
|
||||
return console.error(privilegesError);
|
||||
}
|
||||
|
||||
let allPrivileges: CustomPrivilege[] = [];
|
||||
|
||||
if (privilegesResponse) {
|
||||
if (privilegesResponse.templategen !== undefined)
|
||||
allPrivileges = allPrivileges.concat(privilegesResponse.templategen);
|
||||
if (privilegesResponse.squiz !== undefined) allPrivileges = allPrivileges.concat(privilegesResponse.squiz);
|
||||
mutatePrivileges(allPrivileges);
|
||||
}
|
||||
if (privilegesResponse) mutatePrivileges(privilegesResponse);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user