diff --git a/package-lock.json b/package-lock.json index 22a7bd66d..1ad6f15e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "clean-webpack-plugin": "^4.0.0", "date-fns": "^4.1.0", "deepl-node": "^1.15.0", - "diff": "^8.0.2", + "diff": "^8.0.3", "dompurify": "^3.2.4", "easyqrcodejs": "^4.4.13", "file-saver": "^2.0.5", @@ -32,7 +32,7 @@ "jquery": "^3.6.3", "jszip": "^3.10.1", "libphonenumber-js": "^1.10.41", - "lodash": "^4.17.21", + "lodash": "^4.17.23", "papaparse": "^5.4.1", "pdfjs-dist": "5.1", "qrcode.react": "^4.1.0", @@ -6766,9 +6766,9 @@ "integrity": "sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==" }, "node_modules/diff": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.2.tgz", - "integrity": "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz", + "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==", "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" @@ -9866,9 +9866,10 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", diff --git a/package.json b/package.json index 7226c5f1d..2dd2fc7ae 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "clean-webpack-plugin": "^4.0.0", "date-fns": "^4.1.0", "deepl-node": "^1.15.0", - "diff": "^8.0.2", + "diff": "^8.0.3", "dompurify": "^3.2.4", "easyqrcodejs": "^4.4.13", "file-saver": "^2.0.5", @@ -106,7 +106,7 @@ "jquery": "^3.6.3", "jszip": "^3.10.1", "libphonenumber-js": "^1.10.41", - "lodash": "^4.17.21", + "lodash": "^4.17.23", "papaparse": "^5.4.1", "pdfjs-dist": "5.1", "qrcode.react": "^4.1.0", diff --git a/react/assets/forus-platform/scss/_common/blocks/block-financial-dashboard.scss b/react/assets/forus-platform/scss/_common/blocks/block-financial-dashboard.scss index c352c7503..495d9b0fc 100644 --- a/react/assets/forus-platform/scss/_common/blocks/block-financial-dashboard.scss +++ b/react/assets/forus-platform/scss/_common/blocks/block-financial-dashboard.scss @@ -77,10 +77,6 @@ .checkbox-label { font: 600 13px/16px var(--base-font); color: #646f79; - - &.active { - color: #009ef4; - } } .block-option-count { @@ -92,6 +88,10 @@ font: inherit; color: #646f79; } + + &.block-option-active .checkbox-label { + color: #009ef4; + } } .block-option-empty { @@ -108,6 +108,10 @@ .card-section { border-bottom-color: var(--border-color); + + &>.financial-chart { + height: 350px; + } } .financial-totals { diff --git a/react/src/dashboard/components/elements/announcements/Accouncements.tsx b/react/src/dashboard/components/elements/announcements/Accouncements.tsx index 3f4f50e55..93624aca6 100644 --- a/react/src/dashboard/components/elements/announcements/Accouncements.tsx +++ b/react/src/dashboard/components/elements/announcements/Accouncements.tsx @@ -1,4 +1,5 @@ import React, { useCallback, useEffect, useState } from 'react'; +import classNames from 'classnames'; import Announcement from '../../../props/models/Announcement'; export const Announcements = ({ announcements }: { announcements: Array }) => { @@ -43,9 +44,15 @@ export const Announcements = ({ announcements }: { announcements: Array (
+ className={classNames( + 'announcement', + announcement.type === 'warning' && 'announcement-warning', + announcement.type === 'danger' && 'announcement-danger', + announcement.type === 'success' && 'announcement-success', + announcement.type === 'primary' && 'announcement-primary', + announcement.type === 'default' && 'announcement-default', + announcement.dismissed && 'dismissed', + )}>
{announcement.title}
diff --git a/react/src/dashboard/components/elements/app-links/AppLinks.tsx b/react/src/dashboard/components/elements/app-links/AppLinks.tsx index c38accd74..35507101e 100644 --- a/react/src/dashboard/components/elements/app-links/AppLinks.tsx +++ b/react/src/dashboard/components/elements/app-links/AppLinks.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import classNames from 'classnames'; import useEnvData from '../../../hooks/useEnvData'; import useAssetUrl from '../../../hooks/useAssetUrl'; @@ -9,7 +10,7 @@ export default function AppLinks({ showIosButton = true, showAndroidButton = true, }: { - type?: string; + type?: 'lg'; iosId?: string; androidId?: string; showIosButton?: boolean; @@ -19,7 +20,7 @@ export default function AppLinks({ const assetUrl = useAssetUrl(); return ( -
+
{showAndroidButton && ( +
{envData.client_type == 'sponsor' && (
diff --git a/react/src/dashboard/components/elements/block-card-emails/BlockCardEmails.tsx b/react/src/dashboard/components/elements/block-card-emails/BlockCardEmails.tsx index c4141c0f8..b91212e7e 100644 --- a/react/src/dashboard/components/elements/block-card-emails/BlockCardEmails.tsx +++ b/react/src/dashboard/components/elements/block-card-emails/BlockCardEmails.tsx @@ -23,6 +23,7 @@ import Organization from '../../../props/models/Organization'; import useConfigurableTable from '../../pages/vouchers/hooks/useConfigurableTable'; import TableTopScroller from '../tables/TableTopScroller'; import { FilterModel } from '../../../modules/filter_next/types/FilterParams'; +import FormGroup from '../forms/elements/FormGroup'; export default function BlockCardEmails({ organization, @@ -118,15 +119,18 @@ export default function BlockCardEmails({
-
- filterUpdate({ q: e.target.value })} - /> -
+ ( + filterUpdate({ q: e.target.value })} + /> + )} + />
diff --git a/react/src/dashboard/components/elements/block-label-tabs/BlockLabelTabs.tsx b/react/src/dashboard/components/elements/block-label-tabs/BlockLabelTabs.tsx index 5829b1eb9..7516a31d3 100644 --- a/react/src/dashboard/components/elements/block-label-tabs/BlockLabelTabs.tsx +++ b/react/src/dashboard/components/elements/block-label-tabs/BlockLabelTabs.tsx @@ -5,10 +5,12 @@ export default function BlockLabelTabs({ value, setValue, tabs, + size = 'sm', }: { value: t; setValue: (state: t) => void; - tabs: Array<{ value: t; label: string }>; + tabs: Array<{ value: t; label: React.ReactNode; dusk?: string }>; + size?: 'sm' | null; }) { return (
@@ -16,7 +18,12 @@ export default function BlockLabelTabs({ {tabs.map((tab, index) => (
setValue(tab.value)}> {tab.label}
diff --git a/react/src/dashboard/components/elements/block-reimbursement-categories/BlockReimbursementCategories.tsx b/react/src/dashboard/components/elements/block-reimbursement-categories/BlockReimbursementCategories.tsx index 920c47f6f..96ede7a8d 100644 --- a/react/src/dashboard/components/elements/block-reimbursement-categories/BlockReimbursementCategories.tsx +++ b/react/src/dashboard/components/elements/block-reimbursement-categories/BlockReimbursementCategories.tsx @@ -205,7 +205,7 @@ export default function BlockReimbursementCategories({
{categories?.meta.total > 0 && ( -
+
-
+
{imageIconImg && (
{''} @@ -94,7 +103,12 @@ export default function EmptyCard({ key={index} to={button.to} onClick={button.onClick} - className={`button button-${button.type || 'default'}`} + className={classNames( + 'button', + (!button.type || button.type === 'default') && 'button-default', + button.type === 'primary' && 'button-primary', + button.type === 'danger' && 'button-danger', + )} data-dusk={button.dusk || 'btnEmptyBlock'}> {button.icon && (!button.iconPosition || button.iconPosition == 'start') && ( diff --git a/react/src/dashboard/components/elements/faq-editor-funds/FaqEditorItem.tsx b/react/src/dashboard/components/elements/faq-editor-funds/FaqEditorItem.tsx index 9bd2cc899..33e5a1d29 100644 --- a/react/src/dashboard/components/elements/faq-editor-funds/FaqEditorItem.tsx +++ b/react/src/dashboard/components/elements/faq-editor-funds/FaqEditorItem.tsx @@ -1,11 +1,12 @@ -import FormError from '../forms/errors/FormError'; import MarkdownEditor from '../forms/markdown-editor/MarkdownEditor'; import React, { useMemo } from 'react'; +import classNames from 'classnames'; import { ResponseErrorData } from '../../../props/ApiResponses'; import { useSortable } from '@dnd-kit/sortable'; import { CSS } from '@dnd-kit/utilities'; import Faq from '../../../props/models/Faq'; import useTranslate from '../../../hooks/useTranslate'; +import FormGroup from '../forms/elements/FormGroup'; export default function FaqEditorItem({ id, @@ -43,13 +44,14 @@ export default function FaqEditorItem({ {faqItem.type === 'question' ? (
+ className={classNames( + 'question-icon', + isCollapsed && (!faqItem.title || !faqItem.description) && 'text-danger', + )}>
) : ( -
+
)} @@ -97,43 +99,53 @@ export default function FaqEditorItem({ {!isCollapsed && (
-
- - onChange({ title: e.target.value })} - placeholder="Title..." - /> -
Max. 200 tekens
- -
+ ( + onChange({ title: e.target.value })} + placeholder="Title..." + /> + )} + /> {faqItem.type === 'question' ? ( -
- - onChange({ description: description })} - extendedOptions={true} - placeholder={translate('organization_edit.labels.description')} - /> -
Max. 5000 tekens
- -
+ ( + onChange({ description: description })} + extendedOptions={true} + placeholder={translate('organization_edit.labels.description')} + /> + )} + /> ) : ( -
- - -
+ ( +