I'm using material-ui
and next
and jss-rtl
in my react
project but there is a problem
the page is still ltr
after using <JssProvider ...>
-rtl component code:
import React from "react";
import { create } from 'jss';
import rtl from 'jss-rtl';
import JssProvider from 'react-jss/lib/JssProvider';
import { createGenerateClassName, jssPreset } from 'material-ui/styles';
// Configure JSS
const jss = create({ plugins: [...jssPreset().plugins, rtl()] });
// Custom Material-UI class name generator.
const generateClassName = createGenerateClassName();
function RTL(props) {
return (
<JssProvider jss={jss} generateClassName={generateClassName}>
{props.children}
</JssProvider>
);
}
export default RTL;
-index.js Code :
import React from 'react';
import ReactDOM from 'react-dom';
import {createBrowserHistory} from "history";
import {Router, Route, Switch} from 'react-router-dom';
import {MuiThemeProvider, createMuiTheme} from 'material-ui/styles';
import r8 from "./components/r8";
import RTL from "./components/RTL";
import appRoutes from "./routes/app";
import "./assets/css/App.css";
import "./assets/fonts/fonts.css";
const hist = createBrowserHistory();
const theme = createMuiTheme({
typography: {
fontFamily: "PhpPlus"
},
pallete: {
primary: {
light: r8.color.indigo[300],
main: r8.color.indigo[500],
dark: r8.color.indigo[700],
},
secondary: {
light: r8.color.pink.A200,
main: r8.color.pink.A400,
dark: r8.color.pink.A700,
},
error: {
light: r8.color.red[300],
main: r8.color.red[500],
dark: r8.color.red[700],
}
}
});
const Rendering = <RTL>
<MuiThemeProvider theme={theme}>
<Router history={hist}>
<Switch>
{
appRoutes.map((route, key) => {
return <Route {...route} key={key}/>;
})
}
</Switch>
</Router>
</MuiThemeProvider>
</RTL>;
ReactDOM.render(Rendering, document.getElementById('R8'));
[NOTE] no errors in console
i tested :
const theme = createMuiTheme({ direction: "rtl", ...});
//no change , still ltr
or
<body dir="rtl">
//page direction is rtl but paddings or margins and floats and other css codes not flipped!
Does anybody know what's wrong? Note that this code was working in an earlier version of my project on Windows 10. When I changed my OS into Linux Ubuntu 16.04 (LTS) and installed Nodejs, it's not working anymore... (sorry for bad typing English - I'm Persian! :) )