diff --git a/.eslintrc.js b/.eslintrc.js index 04e5896f..58af0cb3 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -4,6 +4,14 @@ module.exports = { project: ['./tsconfig.json'], }, root: true, + rules: { + 'import/no-extraneous-dependencies': [ + 'warn', + { + devDependencies: ['**/setupTests.ts'], + }, + ], + }, settings: { next: { rootDir: ['apps/*/'], diff --git a/package-lock.json b/package-lock.json index e31dcfb4..3692cf77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28001,6 +28001,12 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "dev": true + }, "node_modules/resolve": { "version": "1.22.6", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", @@ -34394,6 +34400,7 @@ "devDependencies": { "@testing-library/jest-dom": "^6.1.3", "jest": "^29.7.0", + "resize-observer-polyfill": "^1.5.1", "typescript": "^5.2.2" } }, diff --git a/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.mock.tsx b/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.mock.tsx index d32a92c4..d44f5d5f 100644 --- a/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.mock.tsx +++ b/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.mock.tsx @@ -31,10 +31,10 @@ export const contents = ( ); export const tabs = [ - + First , - + Second , diff --git a/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.test.tsx b/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.test.tsx index bab4efe1..2978d3bd 100644 --- a/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.test.tsx +++ b/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.test.tsx @@ -6,7 +6,9 @@ import { contents, tabs } from './ResponsiveTabs.mock'; describe('ResponsiveTabs', () => { it('matches snapshot', () => { const { container } = renderWithProviders( - {contents}, + + {contents} + , ); expect(container).toMatchSnapshot(); }); diff --git a/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.tsx b/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.tsx index fbc5c9fe..043db619 100644 --- a/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.tsx +++ b/packages/react-front-kit/src/Components/ResponsiveTabs/ResponsiveTabs.tsx @@ -39,7 +39,10 @@ export interface IResponsiveTabs extends TabsProps { export function ResponsiveTabs(props: IResponsiveTabs): ReactNode { const { children, tabs, ...tabsProps } = props; const { ref, width } = useElementSize(); - const overflowButtonId = useId(); + const generatedId = useId(); + const overflowButtonId = tabsProps.id + ? `${tabsProps.id}-overflow-button` + : generatedId; const [overflowIndex, setOverflowIndex] = useState(tabs.length); const { classes } = useStyles(); diff --git a/packages/react-front-kit/src/Components/ResponsiveTabs/__snapshots__/ResponsiveTabs.test.tsx.snap b/packages/react-front-kit/src/Components/ResponsiveTabs/__snapshots__/ResponsiveTabs.test.tsx.snap index 8d494a5e..3e0702cb 100644 --- a/packages/react-front-kit/src/Components/ResponsiveTabs/__snapshots__/ResponsiveTabs.test.tsx.snap +++ b/packages/react-front-kit/src/Components/ResponsiveTabs/__snapshots__/ResponsiveTabs.test.tsx.snap @@ -3,20 +3,109 @@ exports[`ResponsiveTabs matches snapshot 1`] = `
+
+ + + + + + +