30 lines
865 B
Dart
30 lines
865 B
Dart
class PaywallUtils {
|
|
const PaywallUtils._();
|
|
|
|
/// Builds a paywall URL from a template.
|
|
///
|
|
/// - Supports both raw placeholders (`{localPart}`, `{domainName}`)
|
|
/// and URL-encoded placeholders (`%7BlocalPart%7D`, `%7BdomainName%7D`).
|
|
/// - If [localPart] or [domainName] is not provided, the placeholder
|
|
/// is removed.
|
|
static String buildPaywallUrlFromTemplate({
|
|
required String template,
|
|
String? localPart,
|
|
String? domainName,
|
|
}) {
|
|
final replacements = {
|
|
'{localPart}': localPart ?? '',
|
|
'{domainName}': domainName ?? '',
|
|
Uri.encodeComponent('{localPart}'): localPart ?? '',
|
|
Uri.encodeComponent('{domainName}'): domainName ?? '',
|
|
};
|
|
|
|
var result = template;
|
|
replacements.forEach((placeholder, value) {
|
|
result = result.replaceAll(placeholder, value);
|
|
});
|
|
|
|
return result;
|
|
}
|
|
}
|