Skip to content
This repository has been archived by the owner on Nov 30, 2021. It is now read-only.

Commit

Permalink
Properly support the usage of the modal without an explicit theme
Browse files Browse the repository at this point in the history
  • Loading branch information
Pierre-Do committed Jul 9, 2020
1 parent c2ef1d1 commit b990b09
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 25 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@qoqa/carousel",
"version": "0.5.0",
"version": "0.5.1",
"main": "index.js",
"module": "es/index.js",
"types": "index.d.ts",
Expand Down
24 changes: 10 additions & 14 deletions src/carousel/CarouselWithModal.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,10 @@ const TestCarouselTrigger = ({ slideIndexToOpen }: any) => {

const TestCarouselWithTrigger = ({ slideIndexToOpen }: any) => {
return (
<MuiThemeProvider theme={theme}>
<CarouselContextProvider slides={slides}>
<TestCarouselTrigger slideIndexToOpen={slideIndexToOpen} />
<CarouselWithModal getTranslations={getDefaultTranslations} />
</CarouselContextProvider>
</MuiThemeProvider>
<CarouselContextProvider slides={slides}>
<TestCarouselTrigger slideIndexToOpen={slideIndexToOpen} />
<CarouselWithModal getTranslations={getDefaultTranslations} />
</CarouselContextProvider>
);
};

Expand Down Expand Up @@ -88,14 +86,12 @@ describe('CarouselWithModal', () => {

it('should not display the controls if there is only one slide', () => {
const CarouselWithOne = () => (
<MuiThemeProvider theme={theme}>
<CarouselContextProvider slides={[slides[0]]}>
<CarouselWithModal
isInitiallyOpen
getTranslations={getDefaultTranslations}
/>
</CarouselContextProvider>
</MuiThemeProvider>
<CarouselContextProvider slides={[slides[0]]}>
<CarouselWithModal
isInitiallyOpen
getTranslations={getDefaultTranslations}
/>
</CarouselContextProvider>
);

const { queryByText } = render(<CarouselWithOne />);
Expand Down
26 changes: 16 additions & 10 deletions src/carousel/CarouselWithModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,28 @@ import React from 'react';
import { CarouselModal } from './CarouselModal';
import { CarouselModalContent } from './CarouselModalContent';
import { CarouselType } from './Carousel.type';
import { MuiThemeProvider } from '@material-ui/core';
import createPalette from '@material-ui/core/styles/createPalette';
import { createMuiTheme, MuiThemeProvider } from '@material-ui/core';
import { useTheme as useThemeWithoutDefault } from '@material-ui/styles';

// Better UX if the modal is always in dark theme
const darkPalette = createPalette({
type: 'dark',
const darkTheme = createMuiTheme({
palette: {
type: 'dark',
},
});

export function CarouselWithModal(props: CarouselType) {
const theme = useThemeWithoutDefault();

const defaultThemeOrExistingOne = theme
? () => ({
...theme,
palette: darkTheme.palette,
})
: darkTheme;

return (
<MuiThemeProvider
theme={(defaultTheme) => ({
...defaultTheme,
palette: darkPalette,
})}
>
<MuiThemeProvider theme={defaultThemeOrExistingOne}>
<CarouselModal isInitiallyOpen={props.isInitiallyOpen}>
<CarouselModalContent {...props} />
</CarouselModal>
Expand Down

0 comments on commit b990b09

Please sign in to comment.