13 Commits

Author SHA1 Message Date
Primakov Alexandr Alexandrovich
c1311f351c 3.6.8 2025-01-08 18:39:22 +03:00
Primakov Alexandr Alexandrovich
c2fe846c5b fix getNavigationValue name 2025-01-08 18:39:18 +03:00
Primakov Alexandr Alexandrovich
81533c3342 3.6.7 2025-01-08 18:33:10 +03:00
Primakov Alexandr Alexandrovich
462ba85fe8 check exam link to render 2025-01-08 18:33:02 +03:00
Primakov Alexandr Alexandrovich
d0f7dfb87d login required back
All checks were successful
platform/bro-js/journal.pl/pipeline/head This commit looks good
2025-01-07 18:09:54 +03:00
Primakov Alexandr Alexandrovich
a133cea95c 3.6.6 2025-01-07 18:04:01 +03:00
Primakov Alexandr Alexandrovich
4704b404f9 update ts config 2025-01-07 17:00:37 +03:00
Primakov Alexandr Alexandrovich
55d23f1e47 twik a bit 2025-01-07 16:57:37 +03:00
Primakov Alexandr Alexandrovich
6b07fef62f up kc js version 2025-01-07 16:49:55 +03:00
Primakov Alexandr Alexandrovich
3242576a12 check sso 2 debug 2025-01-07 16:42:04 +03:00
Primakov Alexandr Alexandrovich
a7168231a1 kc params from env 2025-01-07 16:20:20 +03:00
Primakov Alexandr Alexandrovich
cc7f3d3371 3.6.5
All checks were successful
platform/bro-js/journal.pl/pipeline/head This commit looks good
2024-12-21 16:19:32 +03:00
Primakov Alexandr Alexandrovich
d20cb7257b 3.6.4 2024-12-21 16:16:40 +03:00
9 changed files with 1964 additions and 3791 deletions

24
@types/index.d.ts vendored Normal file
View File

@@ -0,0 +1,24 @@
declare const IS_PROD: string
declare const KC_URL: string
declare const KC_REALM: string
declare const KC_CLIENT_ID: string
declare module '*.svg' {
const value: string
export default value
}
declare module '*.jpg' {
const value: string
export default value
}
declare module '*.png' {
const value: string
export default value
}
declare const __webpack_public_path__: string

View File

@@ -1,3 +1,5 @@
const webpack = require('webpack');
const pkg = require('./package')
module.exports = {
@@ -6,6 +8,13 @@ module.exports = {
output: {
publicPath: `/static/${pkg.name}/${process.env.VERSION || pkg.version}/`,
},
plugins: [
new webpack.DefinePlugin({
KC_URL: process.env.KC_URL || '"https://kc.bro-js.ru"',
KC_REALM: process.env.KC_REALM || '"bro-js"',
KC_CLIENT_ID: process.env.KC_CLIENT_ID || '"microfrontend-admin"',
}),
],
},
navigations: {
'journal.main': '/journal.pl',

6
index.d.ts vendored
View File

@@ -1,6 +0,0 @@
declare module '*.svg' {
const src: string;
export default src;
}
declare const __webpack_public_path__: string;

5648
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "journal.pl",
"version": "3.6.3",
"version": "3.6.8",
"description": "bro-js platform journal ui repo",
"main": "./src/index.tsx",
"scripts": {
@@ -25,7 +25,7 @@
"eslint-plugin-react": "^7.34.1"
},
"dependencies": {
"@brojs/cli": "^0.0.4-beta.0",
"@brojs/cli": "^1.8.4",
"@chakra-ui/icons": "^2.1.1",
"@chakra-ui/react": "^2.8.2",
"@emotion/react": "^11.11.4",
@@ -37,7 +37,7 @@
"dayjs": "^1.11.10",
"express": "^4.19.2",
"js-sha256": "^0.11.0",
"keycloak-js": "^23.0.7",
"keycloak-js": "^26.0.7",
"prettier": "^3.2.5",
"qrcode": "^1.5.3",
"react": "^18.3.1",

View File

@@ -1,9 +1,9 @@
import Keycloak from 'keycloak-js';
import Keycloak from 'keycloak-js'
export const keycloak = new Keycloak({
url: 'https://kc.bro-js.ru',
realm: 'bro-js',
clientId: 'journal'
url: KC_URL,
realm: KC_REALM,
clientId: KC_CLIENT_ID,
});
window.keycloak = keycloak;
(window as any).kc = keycloak

View File

@@ -17,11 +17,18 @@ let rootElement: ReactDOM.Root
export const mount = async (Component, element = document.getElementById('app')) => {
let user = null;
try {
await keycloak.init({ onLoad: "login-required" });
user = { ...(await keycloak.loadUserInfo()), ...keycloak.tokenParsed };
await keycloak.init({ onLoad: 'login-required' })
const userInfo = await keycloak.loadUserInfo()
if (userInfo && keycloak.tokenParsed) {
user = { ...userInfo, ...keycloak.tokenParsed }
} else {
console.error('No userInfo or tokenParsed', userInfo, keycloak.tokenParsed)
}
} catch (error) {
console.error("Failed to initialize adapter:", error);
keycloak.login();
console.error('Failed to initialize adapter:', error)
keycloak.login()
}
const store = createStore({ user });

View File

@@ -1,7 +1,7 @@
import React from 'react'
import dayjs from 'dayjs'
import { Link as ConnectedLink } from 'react-router-dom'
import { getNavigationsValue, getHistory } from '@brojs/cli'
import { getNavigationValue, getHistory } from '@brojs/cli'
import { Stack, Heading, Link, Button, Tooltip, Box } from '@chakra-ui/react'
import { useAppSelector } from '../../__data__/store'
@@ -27,23 +27,23 @@ export const CourseDetails = ({ populatedCourse }: CourseDetailsProps) => {
{isTeacher(user) && (
<Heading as="h3" mt={4} mb={3} size="lg">
Экзамен: {exam?.name}{' '}
{exam && (
{exam && getNavigationValue('exam.main') && getNavigationValue('link.exam.details') && (
<Tooltip label="Начать экзамен" fontSize="12px" top="16px">
<Button
leftIcon={<LinkIcon />}
as={'a'}
colorScheme="blue"
href={
getNavigationsValue('exam.main') +
getNavigationsValue('link.exam.details')
getNavigationValue('exam.main') +
getNavigationValue('link.exam.details')
.replace(':courseId', populatedCourse.id)
.replace(':examId', exam.id)
}
onClick={(event) => {
event.preventDefault()
history.push(
getNavigationsValue('exam.main') +
getNavigationsValue('link.exam.details')
getNavigationValue('exam.main') +
getNavigationValue('link.exam.details')
.replace(':courseId', populatedCourse.id)
.replace(':examId', exam.id),
)
@@ -95,7 +95,7 @@ export const CourseDetails = ({ populatedCourse }: CourseDetailsProps) => {
key={lesson.id}
to={
isTeacher(user)
? `${getNavigationsValue('journal.main')}/lesson/${populatedCourse.id}/${lesson.id}`
? `${getNavigationValue('journal.main')}/lesson/${populatedCourse.id}/${lesson.id}`
: ''
}
>

View File

@@ -1,21 +1,22 @@
{
"compilerOptions": {
"lib": [
"dom",
"es2017"
],
"lib": ["dom", "es2017"],
"outDir": "./dist/",
"sourceMap": true,
"esModuleInterop": true,
"noImplicitAny": false,
"module": "esnext",
"moduleResolution": "node",
"target": "es6",
"jsx": "react",
"typeRoots": ["node_modules/@types", "src/typings"],
"typeRoots": ["node_modules/@types", "./@types"],
"types": ["webpack-env", "node"],
"resolveJsonModule": true
"resolveJsonModule": true,
"moduleResolution": "Bundler",
"skipLibCheck": true,
},
"types": [
"@types/*"
],
"exclude": [
"node_modules",
"**/*.test.ts",