Skip to content

Translate 'Context' page #129

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 5, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
149 changes: 74 additions & 75 deletions content/docs/context.md

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions examples/context/motivation-problem.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ class App extends React.Component {

function Toolbar(props) {
// highlight-range{1-4,7}
// The Toolbar component must take an extra "theme" prop
// and pass it to the ThemedButton. This can become painful
// if every single button in the app needs to know the theme
// because it would have to be passed through all components.
// Komponent `Toolbar` musi przyjmować dodatkową właściwość "theme"
// i przekazywać ją w dół do `ThemedButton`. Gdyby każdy przycisk w aplikacji
// wymagał dostępu do tej wartości, mogłoby to okazać się uciążliwe,
// ponieważ należałoby przekazywać ją przez wszystkie poziomy struktury.
return (
<div>
<ThemedButton theme={props.theme} />
Expand Down
22 changes: 11 additions & 11 deletions examples/context/motivation-solution.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
// highlight-range{1-4}
// Context lets us pass a value deep into the component tree
// without explicitly threading it through every component.
// Create a context for the current theme (with "light" as the default).
// Kontekst pozwala na przekazywanie wartości głęboko do drzewa komponentów
// z pominięciem komponentów pośrednich.
// Stwórzmy kontekst dla aktualnie wybranego motywu (nadając mu domyślną wartość "light" - jasny).
const ThemeContext = React.createContext('light');

class App extends React.Component {
render() {
// highlight-range{1-3,5}
// Use a Provider to pass the current theme to the tree below.
// Any component can read it, no matter how deep it is.
// In this example, we're passing "dark" as the current value.
// Użyj "dostawcy" (Provider), aby ustawić motyw dla tego poddrzewa aplikacji.
// Każdy komponent będzie mógł go odczytać, nie ważne jak głęboko w drzewie się znajduje.
// W tym przykładzie ustawiamy motyw na "dark" - ciemny.
return (
<ThemeContext.Provider value="dark">
<Toolbar />
Expand All @@ -19,8 +19,8 @@ class App extends React.Component {
}

// highlight-range{1,2}
// A component in the middle doesn't have to
// pass the theme down explicitly anymore.
// Komponent pośredni nie musi już jawnie przekazywać tego ustawienia
// w dół hierarchii.
function Toolbar(props) {
return (
<div>
Expand All @@ -31,9 +31,9 @@ function Toolbar(props) {

class ThemedButton extends React.Component {
// highlight-range{1-3,6}
// Assign a contextType to read the current theme context.
// React will find the closest theme Provider above and use its value.
// In this example, the current theme is "dark".
// Przypisz wartość do `contextType`, aby odczytać aktualne ustawienie motywu z kontekstu.
// React znajdzie najbliższego dostawcę (Provider) motywu i użyje jego wartości.
// W tym przykładzie aktualny motyw będzie ciemny ("dark").
static contextType = ThemeContext;
render() {
return <Button theme={this.context} />;
Expand Down
10 changes: 5 additions & 5 deletions examples/context/multiple-contexts.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
// Theme context, default to light theme
// Kontekst motywu, domyślnie ustawiony na jasny ("light")
const ThemeContext = React.createContext('light');

// Signed-in user context
// Kontekst zalogowanego użytkownika
const UserContext = React.createContext({
name: 'Guest',
name: 'Gość',
});

class App extends React.Component {
render() {
const {signedInUser, theme} = this.props;

// App component that provides initial context values
// Główny komponent aplikacji, który dostarcza wartości dla kontekstów
// highlight-range{2-3,5-6}
return (
<ThemeContext.Provider value={theme}>
Expand All @@ -31,7 +31,7 @@ function Layout() {
);
}

// A component may consume multiple contexts
// Komponent może odczytywać wartości z wielu kontekstów jednocześnie
function Content() {
// highlight-range{2-10}
return (
Expand Down
2 changes: 1 addition & 1 deletion examples/context/reference-caveats-problem.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ class App extends React.Component {
render() {
// highlight-range{2}
return (
<Provider value={{something: 'something'}}>
<Provider value={{something: 'coś tam'}}>
<Toolbar />
</Provider>
);
Expand Down
2 changes: 1 addition & 1 deletion examples/context/reference-caveats-solution.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class App extends React.Component {
super(props);
// highlight-range{2}
this.state = {
value: {something: 'something'},
value: {something: 'coś tam'},
};
}

Expand Down
10 changes: 5 additions & 5 deletions examples/context/theme-detailed-app.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import {ThemeContext, themes} from './theme-context';
import ThemedButton from './themed-button';

// An intermediate component that uses the ThemedButton
// Pośredni komponent, który używa przycisku ThemedButton
function Toolbar(props) {
return (
<ThemedButton onClick={props.changeTheme}>
Change Theme
Zmień motyw
</ThemedButton>
);
}
Expand All @@ -29,9 +29,9 @@ class App extends React.Component {

render() {
//highlight-range{1-3}
// The ThemedButton button inside the ThemeProvider
// uses the theme from state while the one outside uses
// the default dark theme
// Przycisk ThemedButton wewnątrz komponentu ThemeProvider
// korzysta z motywu przechowywanego w stanie, podczas gdy
// ten zewnętrzny korzysta z domyślnego, ciemnego motywu
//highlight-range{3-5,7}
return (
<Page>
Expand Down
2 changes: 1 addition & 1 deletion examples/context/theme-detailed-theme-context.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ export const themes = {

// highlight-range{1-3}
export const ThemeContext = React.createContext(
themes.dark // default value
themes.dark // wartość domyślna
);
6 changes: 3 additions & 3 deletions examples/context/updating-nested-context-app.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ class App extends React.Component {
};

// highlight-range{1-2,5}
// State also contains the updater function so it will
// be passed down into the context provider
// Stan zawiera także funkcję aktualizującą,
// która również zostanie przekazana przez dostawcę kontekstu
this.state = {
theme: themes.light,
toggleTheme: this.toggleTheme,
Expand All @@ -25,7 +25,7 @@ class App extends React.Component {

render() {
// highlight-range{1,3}
// The entire state is passed to the provider
// Cały stan komponentu jest przekazywany do dostawcy
return (
<ThemeContext.Provider value={this.state}>
<Content />
Expand Down
4 changes: 2 additions & 2 deletions examples/context/updating-nested-context-context.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Make sure the shape of the default value passed to
// createContext matches the shape that the consumers expect!
// Upewnij się, że kształt wartości domyślnej przekazanej do `createContext`
// odpowiada kształtowi oczekiwanemu przez konsumentów!
// highlight-range{2-3}
export const ThemeContext = React.createContext({
theme: themes.dark,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ import {ThemeContext} from './theme-context';

function ThemeTogglerButton() {
// highlight-range{1-2,5}
// The Theme Toggler Button receives not only the theme
// but also a toggleTheme function from the context
// Przycisk odczytuje z kontekstu nie tylko aktualny motyw,
// ale także funkcję `toggleTheme` (przełącz motyw)
return (
<ThemeContext.Consumer>
{({theme, toggleTheme}) => (
<button
onClick={toggleTheme}
style={{backgroundColor: theme.background}}>
Toggle Theme
Przełącz motyw
</button>
)}
</ThemeContext.Consumer>
Expand Down