Opis ebooka: Gatsby: The Definitive Guide
Get the definitive guide on Gatsby, the JavaScript framework for building blazing fast websites and applications. Used by Nike, Costa Coffee, and other companies worldwide, Gatsby is emerging as one of the key technologies in the Jamstack (JavaScript, APIs, and markup) ecosystem. With this comprehensive guide, you'll learn how to architect, build, and deploy Gatsby sites independently or with CMSs, commerce systems, and other data sources.
Author Preston So begins by showing you how to set up a Gatsby site from scratch. From there, youâ??ll learn ways to use Gatsbyâ??s declarative rendering and GraphQL API, build complex offline-enabled sites, and continuously deploy Gatsby sites on a variety of platforms, including Gatsby Cloud.
- Discover how Gatsby integrates with many data sources and plug-ins
- Set up, configure, and architect Gatsby sites using Gatsby's CLI, React, JSX, and GraphQL with high performance out of the box
- Build an independent Gatsby site based on Markdown and data- and content-driven Gatsby sites that integrate with CMSs and commerce platforms
- Deploy Gatsby sites with full CI/CD and test coverage on a variety of platforms, including Netlify, Vercel, and Gatsby Cloud
Wybrane bestsellery
-
To kolejne, rozbudowane i uaktualnione wydanie świetnego podręcznika projektowania i programowania stron internetowych, zawierające wiedzę niezbędną do rozpoczęcia samodzielnej pracy. Opisano tu zasady tworzenia witryn WWW oraz przedstawiono język HTML i techniki CSS. Sporo miejsca poświęcono mul...
Projektowanie stron internetowych. Przewodnik dla początkujących webmasterów po HTML5, CSS3 i grafice. Wydanie V Projektowanie stron internetowych. Przewodnik dla początkujących webmasterów po HTML5, CSS3 i grafice. Wydanie V
(38.90 zł najniższa cena z 30 dni)38.90 zł
129.00 zł(-70%) -
Przekonaj się, jak wygląda składnia JavaScriptu oraz typowe konstrukcje w tym języku. W trakcie lektury kolejnych rozdziałów nauczysz się budować przejrzystą strukturę programu, korzystać z obiektów i tablic oraz wyrażeń regularnych. Ponadto poznasz tajniki programowania obiektowego i najlepsze t...
Zrozumieć JavaScript. Wprowadzenie do programowania Zrozumieć JavaScript. Wprowadzenie do programowania
(59.40 zł najniższa cena z 30 dni)59.40 zł
99.00 zł(-40%) -
This quick-start reference distills the core concepts of React through simple explanations, examples, and step-by-step derivations. This new edition tackles changes brought by React 19, including form actions, the use() hook, and React on the server.
React Key Concepts. An in-depth guide to React's core features - Second Edition React Key Concepts. An in-depth guide to React's core features - Second Edition
(100.08 zł najniższa cena z 30 dni) -
This book is a comprehensive guide to Nuxt.js, which takes you from the basics to advanced topics. Uniquely, this book emphasizes practical, project-based learning, tackling real-world problems.
Nuxt 3 Projects. Build scalable applications with Nuxt 3 using TypeScript, Pinia, and Composition API Nuxt 3 Projects. Build scalable applications with Nuxt 3 using TypeScript, Pinia, and Composition API
-
Full-Stack React Projects is a complete guide to learning full-stack web development, understanding the creation and integration of backend systems, and advancing your career as a frontend developer.
Modern Full-Stack React Projects. Build, maintain, and deploy modern web apps using MongoDB, Express, React, and Node.js Modern Full-Stack React Projects. Build, maintain, and deploy modern web apps using MongoDB, Express, React, and Node.js
-
This book is a comprehensive guide to deploying and scaling frontend web applications on Netlify. With hands-on instructions and real-world examples, this book takes you from setting up a Netlify account and deploying web apps to optimizing performance.
Web Development on Netlify. Proven strategies for building, deploying, and hosting modern web applications Web Development on Netlify. Proven strategies for building, deploying, and hosting modern web applications
-
In this book, you'll gain extensive knowledge of the JavaScript ecosystem, Node.js, and microservices. Moreover, you'll learn best practices that you can easily apply in your everyday work or study.
Building Microservices with Node.js. Explore microservices applications and migrate from a monolith architecture to microservices Building Microservices with Node.js. Explore microservices applications and migrate from a monolith architecture to microservices
-
This unique book introduces both React and React Native, giving you a big picture view of the React ecosystem.
React and React Native. Build cross-platform JavaScript and TypeScript apps for the web, desktop, and mobile - Fifth Edition React and React Native. Build cross-platform JavaScript and TypeScript apps for the web, desktop, and mobile - Fifth Edition
Ebooka "Gatsby: The Definitive Guide" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Gatsby: The Definitive Guide" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Gatsby: The Definitive Guide" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- ISBN Ebooka:
- 978-14-920-8746-5, 9781492087465
- Data wydania ebooka:
-
2021-09-09
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 5.9MB
- Rozmiar pliku Mobi:
- 12.4MB
Spis treści ebooka
- Foreword
- Preface
- Who Should Read This Book
- Why I Wrote This Book
- Navigating This Book
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- I. Elementary Gatsby
- 1. Gatsby Fundamentals
- What Is Gatsby?
- Gatsby Pages and Components
- Gatsbys Data Layer: GraphQL and Source Plugins
- The Gatsby Ecosystem
- What Is Gatsby?
- Why Gatsby?
- Performance
- Accessibility
- Developer Experience
- Security
- Gatsby and the Jamstack
- Static Site Generators
- Distributed Content and Commerce
- The Jamstack
- Differences between Jamstack and other architectures
- Serverless infrastructure
- JavaScript in Gatsby
- Command-Line Interfaces
- Modular JavaScript
- React in Gatsby
- Declarative Rendering with JSX
- React Components
- React Props
- Getting Going with Gatsby
- The Command Line
- Installing the Gatsby CLI
- Creating Your First Gatsby Site
- Starting a Development Server
- Creating a Production Build
- Serving the Production Build Locally
- Conclusion
- 2. Core Elements of Gatsby
- The Gatsby CLI
- Installing and Configuring the Gatsby CLI
- gatsby new
- gatsby develop
- gatsby build
- gatsby serve
- Other Useful Gatsby CLI Commands
- gatsby info
- gatsby clean
- gatsby plugin
- gatsby repl
- The Gatsby CLI
- Starters
- Official and Community Starters
- Modifying Starters
- Creating a New Project from a Starter
- The gatsby-config.js File
- Gatsby Pages and Components
- Pages
- Components
- Linking Between Pages
- The Layout Component
- Using CSS in Gatsby
- Global Styling
- Global styling with a layout component
- Global styling without the layout component
- Global styling with component stylesheets
- Global Styling
- Modular Styling with CSS Modules
- CSS-in-JS
- Emotion
- Styled Components
- Extending Gatsby with Plugins
- Installing Gatsby Plugins
- Loading Local Plugins
- Conclusion
- 3. Adding Features to Gatsby Sites
- Pages and Routing in Gatsby
- Rehydration
- Static Pages
- Hybrid Application Pages
- Client-Only Routes
- Differences Between Gatsby Sites and React Applications
- Pages and Routing in Gatsby
- Adding Forms
- Basic Forms
- Handling Form Submissions
- Getform
- Netlify Forms
- Formspree
- Adding Localization and Internationalization
- gatsby-plugin-i18n
- react-intl
- react-i18next
- Adding an XML Sitemap
- Adding a 404 Page
- Adding Analytics
- Conclusion
- II. Data in Gatsby
- 4. GraphQL and the Gatsby Data Layer
- GraphQL Fundamentals
- GraphQL Queries
- GraphQL Fields
- GraphQL Arguments
- limit and skip
- filter
- sort
- GraphQL Query Variables
- GraphQL Directives
- GraphQL Fragments
- GraphQL Schemas and Types
- GraphQL Fundamentals
- The Gatsby Data Layer
- GraphiQL
- GraphiQL Explorer
- GraphQL Playground
- Page and Component Queries
- Page Queries
- Component Queries with StaticQuery
- Component Queries with the useStaticQuery Hook
- Conclusion
- 5. Source Plugins and Sourcing Data
- Using Source Plugins
- Installing Source Plugins
- Setting Up Source Plugins
- Using Environment Variables with Source Plugins
- Using Source Plugins
- Sourcing Data from the Filesystem
- Setting Up gatsby-source-filesystem
- Working with Files from the Filesystem
- Working with Multiple Directories in the Filesystem
- Sourcing Data from Database Systems
- MongoDB
- MySQL
- PostgreSQL
- Amazon Redshift, SQLite3, Oracle, and MSSQL
- Sourcing Data from Third-Party SaaS Services
- Airtable
- AWS DynamoDB
- Google Docs
- Sourcing Data from CMSs and Commerce Systems
- Contentful
- Drupal
- Netlify CMS
- Prismic
- Sanity
- Shopify
- WordPress
- Sourcing Data from Other Sources
- Sourcing Data from GraphQL APIs
- Sourcing Data from JSON and YAML
- Conclusion
- 6. Programmatic Page Creation
- Traversing GraphQL Data in Pages
- Working with Transformer Plugins
- Adding Transformer Plugins
- Transforming Markdown into Data and HTML
- Adding a List of Markdown Pages
- Working with gatsby-node.js
- Creating Slugs for Markdown Pages
- Using onCreateNode
- Using createNodeField
- Creating Slugs for Markdown Pages
- Adding a Template
- Adding Markdown Pages with createPages
- Conclusion
- 7. Assets in Gatsby
- Working with Assets
- Types of Assets in Gatsby
- Importing Assets Directly with Webpack
- Querying for Assets with gatsby-source-filesystem
- Querying for assets in Gatsby pages and components
- Querying for assets in Markdown files
- Importing Assets with the static Folder
- Motivations for using the static folder
- Referencing a static asset
- Working with Assets
- Working with Images
- The gatsby-plugin-image Plugin (Gatsby 3.0)
- Using gatsby-plugin-image
- Static images with gatsby-plugin-image
- Dynamic images with gatsby-plugin-image
- The gatsby-plugin-image Plugin (Gatsby 3.0)
- The gatsby-image Component (Gatsby 2.0)
- Using gatsby-image
- Working with Videos
- Creating Custom Components for Hosted Videos
- Querying Videos from Markdown Using GraphQL
- Self-Hosting Your Own Videos
- Working with Fonts
- Adding Local Fonts
- Adding Web Fonts
- Adding Google Fonts
- Adding Adobe Fonts (Typekit)
- Conclusion
- 8. Adding Data-Driven Features to Gatsby Sites
- Adding Site Search
- Implementing Site Search with Algolia
- Configuring gatsby-plugin-algolia
- Querying Pages with GraphQL for Indexing
- Adding Site Search
- Adding a Commenting System
- Adding Taxonomy to Blog Posts
- Adding Tags and Querying for All Tags
- Adding a Tag Page Template
- Programmatic Tag Page Creation with gatsby-node.js
- Adding a Tag Index Page
- Adding Pagination
- Preparing for Pagination in Page Templates
- Generating Paginated Pages with gatsby-node.js
- Adding an RSS Feed
- Adding an RSS Feed to a Markdown Blog
- Adding an RSS Feed for Non-Markdown Content
- Adding Authentication
- Preparing for Authentication
- Creating Client-Only Routes
- Managing Private Routes
- Providing Privileged Data to Routes
- Conclusion
- III. Extending Gatsby
- 9. Gatsby Plugins and Starters
- Creating Gatsby Starters
- Gatsby Starter Requirements
- Enabling Starter Configuration
- Starter Performance and Accessibility
- Licensing, Testing, and Releasing Starters
- Creating Gatsby Starters
- Creating Gatsby Plugins
- Plugin Nomenclature
- Initializing a New Plugin Project
- Plugin Configuration with Options
- Accessing and passing plugin configuration options
- Validating plugin configuration with an options schema
- Best practices for writing options schemas
- Performing unit testing on options schemas
- Interacting with Gatsby Lifecycle APIs
- Creating Source Plugins
- Initializing Projects for Source Plugin Development
- Installing the Source Plugin
- Creating GraphQL Nodes
- Querying and Sourcing Remote Data
- Configuring an Apollo client to retrieve data
- Querying data from the API
- Optimizing remote images and creating remote File nodes
- Transforming File nodes with Sharp plugins
- Establishing Foreign Key Relationships
- Using Plugin Options to Allow Customization
- Creating Transformer Plugins
- Reviewing an Example: gatsby-transformer-yaml
- Ensuring Needed Data Is Sourced
- Transforming Nodes
- Establishing the Transformer Relationship
- Creating New Nodes from Derived Data and Querying
- Publishing and Maintaining Plugins
- Submitting Plugins to the Gatsby Plugin Library
- Maintaining Plugins
- Handling plugin patches and improvements
- Writing a README and documentation
- Managing dependency versions
- Conclusion
- 10. Gatsby Themes
- Gatsby Themes in Context
- Differences from Plugins and Starters
- Deciding Between Using and Creating a Theme
- Gatsby Themes in Context
- Using Gatsby Themes
- Starting a New Site from a Theme
- Using a Theme in an Existing Site
- Using Multiple Gatsby Themes
- Creating Gatsby Themes
- Creating New Themes
- Gatsby Theme Conventions
- Nomenclature and required directories
- Separating data queries from rendering components
- Providing data customization in themes
- Releasing and versioning Gatsby themes
- Converting Starters into Themes
- Theme Shadowing
- Theme Shadowing in gatsby-theme-blog
- Shadowing Other Files
- Extending Shadowed Files
- Conclusion
- IV. Production Gatsby
- 11. Debugging and Testing Gatsby
- Testing Gatsby
- Unit Testing with Jest
- Configuring Jest
- Writing unit tests
- Running unit tests
- Unit Testing with Jest
- Testing React Components
- Visual Testing with Storybook
- End-to-End Testing with Cypress
- Testing Gatsby
- Debugging Gatsby
- Debugging Static Builds
- Debugging the Build Process
- Debugging Server-Side Rendering Issues
- Debugging Cache Issues
- Debugging Asynchronous Lifecycle Methods
- Conclusion
- 12. Deploying Gatsby
- Environment Variables
- Defining Environment Variables
- Client-side environment variables
- Server-side environment variables
- Defining Environment Variables
- Using Environment Variables
- Environment Variables
- Using Path and Asset Prefixes
- Path Prefixes
- Asset Prefixes
- Deploying to Hosting Services
- Netlify
- Vercel
- Gatsby Cloud
- AWS Amplify
- Azure
- Amazon S3
- Heroku
- Firebase
- GitHub Pages
- Conclusion
- V. Advanced Gatsby
- 13. Advanced Topics in Gatsby
- Creating Recipes
- Infrastructure as Code
- Automating Site Operations with Recipes
- Creating Recipes
- Adding Components to Markdown with MDX
- Getting Started with MDX
- Creating MDX Pages
- Importing Components into MDX Files
- Customizing Markdown Components
- Schema Customization
- Explicitly Defining Data Types
- The Node interface and automatic type inference
- Creating explicit type definitions
- Handling nested types
- Explicitly Defining Data Types
- Implementing the createResolvers API
- Creating Custom Interfaces and Unions
- Custom Gatsby Configuration
- Babel
- Babel Plugin Macros
- Webpack
- Customizing html.js
- ESLint
- Proxying API Requests
- Performance Optimization
- Caching Gatsby Sites
- Adding a Progressive Web App Manifest File
- Adding Offline Support with Service Workers
- Profiling with React Profiler
- Performance Tracing for Gatsby Builds
- Conditional Page Builds
- Conclusion
- 14. Gatsby Internals
- APIs and Plugins in Gatsby
- Loading Configured Plugins
- The apiRunInstance Object
- Executing Plugins and Injecting Arguments
- APIs and Plugins in Gatsby
- The Gatsby Build Lifecycle
- Node Creation
- Establishing parent and child relationships
- Handling stale nodes
- Node Creation
- Schema Generation
- Schema Inference
- Inferring fields on the created Node object
- Inferring child and parent fields
- Schema Root Fields and Utility Types
- Plural root fields
- Singular root fields
- Pagination types
- Filter types
- Sort types
- Page Creation
- Query Extraction and Execution
- Query extraction
- Query execution
- Writing Out Pages
- The pages.json file
- The sync-requires.js file
- The async-requires.js file
- The data.json file
- Bundling Gatsby
- Generating the JavaScript Bundle
- The production-app.js file
- Enabling Code Splitting and Prefetching
- Splitting into and naming chunks
- Mapping chunks to chunk assets
- Referencing chunks in current page HTML
- Referencing chunks to be prefetched
- Conclusion
- A. The Gatsby CLI
- Gatsby Cheat Sheet
- Common CLI Commands
- Quick Start Commands
- Helpful File Definitions
- Top Documentation Pages
- Gatsby Cheat Sheet
- Gatsby CLI Commands
- new
- develop
- build
- serve
- info
- clean
- plugin
- repl
- B. Gatsby Component APIs
- <Link />
- <Link /> Usage
- Active Styles for <Link />
- Working with Props in <Link />
- navigate
- <Link />
- gatsby-plugin-image
- StaticImage
- GatsbyImage
- Image Options
- layout
- width and height
- aspectRatio
- placeholder
- formats
- transformOptions
- Helper Functions
- getImage
- getSrc
- getSrcSet
- withArtDirection
- C. Gatsby Configuration APIs
- Config APIs
- siteMetadata
- plugins
- flags
- pathPrefix
- polyfill
- mapping
- proxy
- developMiddleware
- Config APIs
- Node APIs
- createPages
- Parameters
- Return value
- Example
- createPages
- createPagesStatefully
- createResolvers
- Parameters
- Example
- createSchemaCustomization
- Parameters
- Example
- onCreateBabelConfig
- Parameters
- Example
- onCreateDevServer
- Parameters
- Example
- onCreateNode
- Example
- onCreatePage
- onCreateWebpackConfig
- Parameters
- Example
- onPostBootstrap
- onPostBuild
- onPreBootstrap
- onPreBuild
- onPreExtractQueries
- onPreInit
- pluginOptionsSchema
- Parameters
- Example
- preprocessSource
- resolvableExtensions
- setFieldsOnGraphQLNodeType
- Parameters
- Example
- sourceNodes
- Example
- unstable_onPluginInit
- Example
- unstable_shouldOnCreateNode
- Example
- Index
O'Reilly Media - inne książki
-
Keeping up with the Python ecosystem can be daunting. Its developer tooling doesn't provide the out-of-the-box experience native to languages like Rust and Go. When it comes to long-term project maintenance or collaborating with others, every Python project faces the same problem: how to build re...(201.03 zł najniższa cena z 30 dni)
200.93 zł
239.00 zł(-16%) -
Bringing a deep-learning project into production at scale is quite challenging. To successfully scale your project, a foundational understanding of full stack deep learning, including the knowledge that lies at the intersection of hardware, software, data, and algorithms, is required.This book il...(241.36 zł najniższa cena z 30 dni)
241.26 zł
289.00 zł(-17%) -
Frontend developers have to consider many things: browser compatibility, usability, performance, scalability, SEO, and other best practices. But the most fundamental aspect of creating websites is one that often falls short: accessibility. Accessibility is the cornerstone of any website, and if a...(200.59 zł najniższa cena z 30 dni)
200.09 zł
239.00 zł(-16%) -
In this insightful and comprehensive guide, Addy Osmani shares more than a decade of experience working on the Chrome team at Google, uncovering secrets to engineering effectiveness, efficiency, and team success. Engineers and engineering leaders looking to scale their effectiveness and drive tra...(114.93 zł najniższa cena z 30 dni)
114.88 zł
149.00 zł(-23%) -
Data modeling is the single most overlooked feature in Power BI Desktop, yet it's what sets Power BI apart from other tools on the market. This practical book serves as your fast-forward button for data modeling with Power BI, Analysis Services tabular, and SQL databases. It serves as a starting ...(199.08 zł najniższa cena z 30 dni)
198.88 zł
239.00 zł(-17%) -
C# is undeniably one of the most versatile programming languages available to engineers today. With this comprehensive guide, you'll learn just how powerful the combination of C# and .NET can be. Author Ian Griffiths guides you through C# 12.0 and .NET 8 fundamentals and techniques for building c...(241.02 zł najniższa cena z 30 dni)
240.92 zł
289.00 zł(-17%) -
Learn how to get started with Futures Thinking. With this practical guide, Phil Balagtas, founder of the Design Futures Initiative and the global Speculative Futures network, shows you how designers and futurists have made futures work at companies such as Atari, IBM, Apple, Disney, Autodesk, Luf...(148.10 zł najniższa cena z 30 dni)
148.00 zł
179.00 zł(-17%) -
Augmented Analytics isn't just another book on data and analytics; it's a holistic resource for reimagining the way your entire organization interacts with information to become insight-driven.Moving beyond traditional, limited ways of making sense of data, Augmented Analytics provides a dynamic,...(174.74 zł najniższa cena z 30 dni)
174.54 zł
219.00 zł(-20%) -
Learn how to prepare for—and pass—the Kubernetes and Cloud Native Associate (KCNA) certification exam. This practical guide serves as both a study guide and point of entry for practitioners looking to explore and adopt cloud native technologies. Adrián González Sánchez ...
Kubernetes and Cloud Native Associate (KCNA) Study Guide Kubernetes and Cloud Native Associate (KCNA) Study Guide
(169.14 zł najniższa cena z 30 dni)177.65 zł
199.00 zł(-11%) -
Python is an excellent way to get started in programming, and this clear, concise guide walks you through Python a step at a time—beginning with basic programming concepts before moving on to functions, data structures, and object-oriented design. This revised third edition reflects the gro...(140.34 zł najniższa cena z 30 dni)
140.14 zł
179.00 zł(-22%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
![Loader](https://static01.helion.com.pl/ebookpoint/img/ajax-loader.gif)
![ajax-loader](https://static01.helion.com.pl/ebookpoint/img/ajax-loader.gif)
Oceny i opinie klientów: Gatsby: The Definitive Guide Preston So (0)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.