mirror of
https://github.com/flutter/samples.git
synced 2025-11-10 06:48:26 +00:00
Minor sample index cleanup (#1532)
This commit is contained in:
@@ -14,11 +14,11 @@ import 'package:webdriver/io.dart';
|
||||
class CookbookScraper {
|
||||
late WebDriver _driver;
|
||||
|
||||
Future init() async {
|
||||
Future<void> init() async {
|
||||
_driver = await createDriver(desired: <String, dynamic>{});
|
||||
}
|
||||
|
||||
Future dispose() async {
|
||||
Future<void> dispose() async {
|
||||
await _driver.quit();
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ class CookbookScraper {
|
||||
);
|
||||
}
|
||||
|
||||
Future takeScreenshot(String url) async {
|
||||
Future<void> takeScreenshot(String url) async {
|
||||
var screenshot = await _driver.captureScreenshotAsList();
|
||||
var file = File('web/${screenshotPath(url)}');
|
||||
await file.create(recursive: true);
|
||||
|
||||
@@ -11,7 +11,7 @@ class Carousel {
|
||||
final List<Element> slides = querySelectorAll('.slider-single');
|
||||
|
||||
late int currentSlideIndex;
|
||||
late int lastSlideIndex;
|
||||
late final int lastSlideIndex;
|
||||
|
||||
late Element prevSlide, currentSlide, nextSlide;
|
||||
|
||||
@@ -127,24 +127,24 @@ class Carousel {
|
||||
}
|
||||
|
||||
void _checkRepeat() {
|
||||
var prevArrow = querySelector('.slider-left');
|
||||
var nextArrow = querySelector('.slider-right');
|
||||
var prevArrow = querySelector('.slider-left') as AnchorElement;
|
||||
var nextArrow = querySelector('.slider-right') as AnchorElement;
|
||||
|
||||
if (currentSlideIndex == slides.length - 1) {
|
||||
slides[0].classes.add('hidden');
|
||||
slides[slides.length - 1].classes.remove('hidden');
|
||||
prevArrow!.classes.remove('hidden');
|
||||
nextArrow!.classes.add('hidden');
|
||||
prevArrow.classes.remove('hidden');
|
||||
nextArrow.classes.add('hidden');
|
||||
} else if (currentSlideIndex == 0) {
|
||||
slides[slides.length - 1].classes.add('hidden');
|
||||
slides[0].classes.remove('hidden');
|
||||
prevArrow!.classes.add('hidden');
|
||||
nextArrow!.classes.remove('hidden');
|
||||
prevArrow.classes.add('hidden');
|
||||
nextArrow.classes.remove('hidden');
|
||||
} else {
|
||||
slides[slides.length - 1].classes.remove('hidden');
|
||||
slides[0].classes.remove('hidden');
|
||||
prevArrow!.classes.remove('hidden');
|
||||
nextArrow!.classes.remove('hidden');
|
||||
prevArrow.classes.remove('hidden');
|
||||
nextArrow.classes.remove('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ class Index {
|
||||
|
||||
Index(this.samples);
|
||||
|
||||
factory Index.fromJson(Map json) => _$IndexFromJson(json);
|
||||
factory Index.fromJson(Map<dynamic, dynamic> json) => _$IndexFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$IndexToJson(this);
|
||||
}
|
||||
@@ -100,7 +100,7 @@ class Sample {
|
||||
this.channel,
|
||||
});
|
||||
|
||||
factory Sample.fromJson(Map json) => _$SampleFromJson(json);
|
||||
factory Sample.fromJson(Map<dynamic, dynamic> json) => _$SampleFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$SampleToJson(this);
|
||||
|
||||
@@ -116,25 +116,25 @@ class Sample {
|
||||
buf.write(name.toLowerCase());
|
||||
buf.write(' ');
|
||||
|
||||
for (var tag in tags) {
|
||||
for (final tag in tags) {
|
||||
buf.write('tag:${tag.toLowerCase()} ');
|
||||
|
||||
// Allow tags to be searched without the tag: prefix
|
||||
buf.write('${tag.toLowerCase()} ');
|
||||
}
|
||||
|
||||
for (var platform in platforms) {
|
||||
for (final platform in platforms) {
|
||||
buf.write('platform:$platform ');
|
||||
|
||||
// Allow platforms to be searched without the tag: prefix
|
||||
buf.write('$platform ');
|
||||
}
|
||||
|
||||
for (var widget in widgets) {
|
||||
for (final widget in widgets) {
|
||||
buf.write('widget:$widget ');
|
||||
}
|
||||
|
||||
for (var package in packages) {
|
||||
for (final package in packages) {
|
||||
buf.write('package:$package ');
|
||||
}
|
||||
|
||||
@@ -167,7 +167,8 @@ class Screenshot {
|
||||
|
||||
Screenshot(this.url, this.alt);
|
||||
|
||||
factory Screenshot.fromJson(Map json) => _$ScreenshotFromJson(json);
|
||||
factory Screenshot.fromJson(Map<dynamic, dynamic> json) =>
|
||||
_$ScreenshotFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$ScreenshotToJson(this);
|
||||
}
|
||||
@@ -180,7 +181,7 @@ class Link {
|
||||
|
||||
Link(this.text, this.href);
|
||||
|
||||
factory Link.fromJson(Map json) => _$LinkFromJson(json);
|
||||
factory Link.fromJson(Map<dynamic, dynamic> json) => _$LinkFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$LinkToJson(this);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ bool matchesQuery(String query, String sampleAttributes) {
|
||||
// This will check whether a type parameter is present in the
|
||||
// search query, and return false if the self type mismatches
|
||||
// the query type
|
||||
for (var word in queryWords) {
|
||||
for (final word in queryWords) {
|
||||
if ((word.contains('type:') && !attributes.contains(word)) ||
|
||||
(word.contains('platform:') && !attributes.contains('type:demo'))) {
|
||||
return false;
|
||||
@@ -30,7 +30,7 @@ bool matchesQuery(String query, String sampleAttributes) {
|
||||
|
||||
// Test for exact matches for keywords
|
||||
var matches = 0;
|
||||
for (var word in queryWords) {
|
||||
for (final word in queryWords) {
|
||||
if (attributes.contains(word)) {
|
||||
matches++;
|
||||
}
|
||||
@@ -43,8 +43,8 @@ bool matchesQuery(String query, String sampleAttributes) {
|
||||
// e.g. searching "kitten tag:cats" is a match for a sample with the
|
||||
// attributes "kittens tag:cats"
|
||||
matches = 0;
|
||||
for (var attribute in attributes) {
|
||||
for (var queryWord in queryWords) {
|
||||
for (final attribute in attributes) {
|
||||
for (final queryWord in queryWords) {
|
||||
if (attribute.startsWith(queryWord)) {
|
||||
matches++;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ $_footer
|
||||
</html>
|
||||
''';
|
||||
|
||||
String _indexHeader = '''
|
||||
const String _indexHeader = '''
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Flutter samples</title>
|
||||
@@ -39,11 +39,11 @@ String _indexHeader = '''
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<script src="packages/mdc_web/material-components-web.min.js"></script>
|
||||
<script defer src="main.dart.js"></script>
|
||||
${_googleAnalytics()}
|
||||
$_googleAnalytics
|
||||
</head>
|
||||
''';
|
||||
|
||||
String _descriptionHeader = '''
|
||||
const String _descriptionHeader = '''
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Flutter samples</title>
|
||||
@@ -54,11 +54,11 @@ String _descriptionHeader = '''
|
||||
<script src="packages/mdc_web/material-components-web.min.js"></script>
|
||||
<script src="https://kit.fontawesome.com/16cc04762e.js"></script>
|
||||
<script defer src="description.dart.js"></script>
|
||||
${_googleAnalytics()}
|
||||
$_googleAnalytics
|
||||
</head>
|
||||
''';
|
||||
|
||||
String _navbar = '''
|
||||
const String _navbar = '''
|
||||
<div class="navbar">
|
||||
<a class="leading" href="./">
|
||||
<img src="images/logos/logo_lockup_flutter_horizontal_wht_96.png" />
|
||||
@@ -189,9 +189,10 @@ String _descriptionPage(Sample sample) => '''
|
||||
|
||||
String _descriptionButtons(Sample sample) {
|
||||
var buf = StringBuffer();
|
||||
if (sample.web?.isNotEmpty == true) {
|
||||
var sampleLink = sample.web;
|
||||
if (sampleLink != null && sampleLink.isNotEmpty) {
|
||||
buf.write(
|
||||
'''<button class="mdc-button mdc-button--outlined" onclick="window.location.href = '${sample.web}';"><span class="mdc-button__ripple"></span> Launch App</button>''');
|
||||
'''<button class="mdc-button mdc-button--outlined" onclick="window.location.href = '$sampleLink';"><span class="mdc-button__ripple"></span> Launch App</button>''');
|
||||
}
|
||||
|
||||
if (sample.type == 'app' ||
|
||||
@@ -214,7 +215,7 @@ String _descriptionButtons(Sample sample) {
|
||||
|
||||
String _tags(Sample sample) {
|
||||
var buf = StringBuffer();
|
||||
for (var tag in sample.tags) {
|
||||
for (final tag in sample.tags) {
|
||||
buf.write('<a href="./#?search=tag%3A$tag">$tag</a>\n');
|
||||
}
|
||||
return buf.toString();
|
||||
@@ -222,7 +223,7 @@ String _tags(Sample sample) {
|
||||
|
||||
String _descriptionScreenshots(Sample sample) {
|
||||
var buf = StringBuffer();
|
||||
for (var screenshot in sample.screenshots) {
|
||||
for (final screenshot in sample.screenshots) {
|
||||
buf.write(
|
||||
'''<div class="slider-single"><img class="slider-single-image" src="${screenshot.url}" alt="${screenshot.alt}" /></div>\n''');
|
||||
}
|
||||
@@ -233,8 +234,7 @@ String _descriptionText(Sample sample) {
|
||||
return '<p>${sample.description}</p>';
|
||||
}
|
||||
|
||||
String _googleAnalytics() {
|
||||
return """
|
||||
const String _googleAnalytics = """
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-67589403-8"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
@@ -242,4 +242,3 @@ String _googleAnalytics() {
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'UA-67589403-8');
|
||||
</script>""";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user